Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I am looking for (preferably free) software to:

1) plot 3d points read from a file. A scatter plot would be fine.
2) Optionally color the points by a property - also read from the file

It would be terrific if this program could also compute and display the best fit plane through these points.

share|improve this question
Note: if your a student, Andrew, there are some significant discounts available, e.g. on Matlab, Mathematica, not to mention word processing software. Sage.org (free-source) has Sage available on-line for use and storage of work (remember Sage contains R, GAP, 3-4 additional programs), and it can be downloaded, but I had to do so through VMWare (virtual machine)... –  amWhy May 23 '11 at 4:23
Thank for the suggestion - regretfully not a student :( –  Andrew S. May 24 '11 at 22:09

8 Answers 8

up vote 16 down vote accepted

There are quite a number of freewares which do that.

  1. Gnuplot, with a very interesting not so frequently asked questions here, fit is easily obtained. Nice outputs to PDF and LaTeX
  2. Matplotlib: requires Python, so that's probably not your best option if you need to produce graphs quickly, but if you are thinking about a long term solution, I would go for this one,
  3. R, normally for statistical computations, but quite nice plotting possibilities. Also, it is a software which is intended to read data in files, so it has very powerful and easy to use functions to import CSV files and the likes,
  4. Octave not a big fan. Don't know the new major release, though. Previous releases were based on Gnuplot for the graphic part,
  5. Scilab has continuously grown througout the years, so as to become a monster now. Not a big fan either.

Hope you'll find your best choice here !!! Good luck, Sébastien

share|improve this answer
Any preferences? I've got sage, with GAP, R, ..., Matlab, Mathematica, some graphics programs not readily beneficial, save for geometer's sketchpad (which can be posted to web), but I have to go through 2 saves to different formats for an image file...Would certainly appreciate "reading in capabilities", but my work is more abstract, at this point...lots of tools at my disposal, but there's also the time-factor involved in "getting up to speed" in using the software so it can be used productively...So many choices...hard to know what to focus on learning first –  amWhy May 23 '11 at 4:18
Option 1 is my favourite, but I'm partial, since I've been using it for almost ten years now. I like gnuplot, because you have the opportunity to script your plots. That's particularly useful if you change your calcs and need to update the corresponding graph(s) accordingly. Mind you, this is true of all the other options (!), but the syntax of GNUPLOT is particularly simple. Not sure I'm very helpful, here. Note that coloring points according to property read in file might be more of an issue. You can do it programmatically (options 2-5), but it would be more difficult with GNUPLOT. –  Sebastien May 23 '11 at 4:52
Thanks, Sebastien. I've already checked out your link to Gnuplot. I'll look into it a bit more! –  amWhy May 23 '11 at 5:39
This is a very useful list - I think i will start with GNUPlot Thank you :) –  Andrew S. May 24 '11 at 22:10

I checked all of the above options out and if you want to plot something in 3D in the next ten minutes, and not ten days from now, check out Graphing Calculator 3D.

share|improve this answer

Asymptote vector graphics language. Check out the gallery of graphs/plots/sketches. Here is very pretty examples/code page from France.

Iso plot Surface plot

share|improve this answer

Use Graphing Calculator 3D. It allows you to type in your x,y,z points just as you would in a spreadsheet and plots them immediately after each value is changed. You can also import your points from csv file. Color can be customized and shaded from one color to another. The axis is also fully customizable.

enter image description here

share|improve this answer

DataMelt math program for numeric and statistics computations looks good for plotting functions, data and histograms in 3D, and saving outputs in vector-graphics formats. It is free and written in Java (so, runs on any computer). It is also portable, so no problem with installation.

Here is one example of function and a histogram: enter image description here

share|improve this answer

There is also MayaVi2:


But I am not sure how it compares with other visualization libraries... would like to hear more comments on it.

share|improve this answer

Another one is Plotly, which is entirely web-based and free for public use.

3d scatter plot

Disclaimer: I help develop Plotly

share|improve this answer

Javaview a pure java implementation of advanced 3d features that actually works and is fast! For comparison minecraft uses opengl for all its 3d - however, Notch then went on to work on a pure java (afaik!) shooter http://0x10c.com/ but development has stalled apparently.

Honorable mention in this category: http://jmol.sourceforge.net/

octave is now (since the 3.8 release) seriously offering a replacement for its default gnuplot (slow, restrictive!) interface: an opengl plotting option that uses fltk for cross-plattform windowing. Compilation of octave takes very long though.

Consider this: octave is a scripting language for numerics and gnuplot is a scripting language for plotting. The octave-gnuplot interface works by converting octave to gnuplot. That has certain limitations in regards to speed and responsiveness. Fingers crossed the 3.8 release and beyond resolves this.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.