I need any plot software on Linux or Windows that my students should use it for plotting 3D functions. I want introduce any software that be free and useful for bachelor students.
In terms of free software, a large portion of the available choices are based on a Gnuplot backend; I however would probably not recommend directly using Gnuplot. Instead, your choices are mostly between the various front ends. In terms of the front end, depending on what your students are familiar with and are willing to learn, there are many options.
matplotlibis extremely powerful and configurable, but requires some amount of Python programming from the students.
Sympyalso is based on the basic Python syntax, but its interface and use may be more familiar and accessible to people who have already some familiarity with a computer algebra system.
maximaand its GUI
wxMaximaforms a freely available computer algebra system with a nice interface. In addition to using the gnuplot backend, Maxima also supports a different
xMaximabackend for plotting.
- The list goes on, but the
gnuplotproject page maintains a list of front-ends and programming interfaces using it.
For 3D plots of algebraic relations (polynomials etc.), a slightly less well-known program is
surf, which was intended as a visualization aid for real algebraic geometry. Unfortunately development seems to have stopped several years ago, and recently I have had some difficulty building the source code on my Gentoo Linux machine. Your mileage with it may very well vary.
For undergraduate level, Gnu Octave is probably what you want. It is open source, cross-platform, and syntax-compatible with MATLAB. It's very useful for 2D and 3D plotting and for numeric linear algebra, and it's a tool that will be beneficial for students to know.
Also, GeoGebra is excellent plotting software, and has recently added 3D graphing support. It is not as powerful a tool as Octave, but is well-suited to simple plotting and rendering tasks.
If you type a function into a Google search, you get a pretty nice graph. In order to get interactive 3d graphics, you will need a WebGL enabled browser (with WebGL actually enabled, of course). Try these for starters:
A free tool for Linux and Windows is gnuplot. This same graphical interface can be used from within Octave (as in mkasberg's answer), which is also free. I haven't used it in a while, so I don't recall the difficulty of use. It does have a set of tutorials available for download.
On Windows, Microsoft publishes their own software called Microsoft Mathematics:
Microsoft Mathematics provides a graphing calculator that plots in 2D and 3D, step-by-step equation solving, and useful tools to help students with math and science studies.
You can see it in action in this video.
Microsoft also publishes an add-in for Microsoft Word and Microsoft OneNote that allows you to create these plots directly in the Word or OneNote interface.
A new player on the scene is called Desmos. It's oddly... pretty. It's also super simple to use.
The website is here: Desmos
Sliders can be added rather easily. If you're in the calculator and want to do transformations for example, you might type:
$y=sin(nx)$ -- it will ask you if you want to add a slider for n. This is doable for any number of sliders (so, $y = a(x-h)^2+k$ ); you can restrict the values to integers or to certain ranges, etc. Polar graphing is also available. It's easily explorable.
Of course the benefit of this is that anyone can use it on any computer, no installing.
Additionally, the graphs can be imported to other documents or e-mailed easily if a student is trying something and needs to show you their graph when not in your presence!
If anyone else has used this and has comments, suggestions, or negative experiences I know that I'd love to hear them!
My students and I have been using
It supports most of the visualization you would want in a multivariable calculus course: 3D graphs, vector fields, contour maps, parameterized curves and surfaces, etc.
Sounds like you want them to learn something, so I would recommend the following:
- Start students working with 3D plots in Geogebra
- Set up sagemathcloud
- Introduce sagemathcloud to students having them create markdown documents pasting images of 3D plots and writing up problems, maybe using some LaTeX if you're comfortable.
- Ease off the geogebra and move to Jupyter notebooks where you will move back and forth between using Python's matplotlib 3D plotting and R's ggplot.
I made the following website with the aim of producing a Desmos-like experience in 3D for my multivariable calculus students.
You can use math3d.org to create simple surface plots or complex, animated visualizations. Some features:
- Create and animate points, lines, vectors, curves, surfaces (explicit & implicit), and vecotr fields
- Intuitive math input (powered by same library, MathQuill, as Desmos)
- Save and share your scenes
Here are three scenes that I particularly like:
- Simple Surface Plot
- Parametric Curves, Velocity and Acceleration
- Volumes of Revolution, Shell Method
- Hyperboloids as a Ruled Surface (+screenshot)
Note: This answer is mostly a re-post of my answer to a similar question Calculator Similar to Desmos but for 3D on Math StackExchange.
For an easy-to-use software that is both simple and capable of ploting beautiful 3d graphs you can try downloading my Graphing Calculator 3D software.
It supports explicit and implicit equations, parametric equations, cartesian, polar, cylindrical and spherical coordinates.