Unix Graphing Programs?
An anonymous reader asks: "For university I am looking for a program to make some nice 2D or 3D graphs to represent some data for statistics. I am currently using RedHat Fedora as my Linux distro but KChart, Gnumeric, OpenOffice, and the other ones I found weren't suitable. It would be nice if the "template" was easily configurable so I could standarize all of my work. i.e. have the actual value next to the bar etc.. It's mainly bar graphs that I need. Does anyone have any recommendations for good easy Linux programs to graph general data? professor didn't have any ideas for Linux."
<humor>
KmPlot!
</humor>
^_^
____
~ |rip/\/\aster /\/\onkey
If you want to make consistent looking graphs, with minimal effort, use GNUPLOT. Great piece of software.
www.gnuplot.info
Just cuz you ain't paranoid, doesn't mean they're not after you.
And that's all I have to say about that
Slashdot: where don knuth is an idiot because he cant grasp the awesome power of php
I use gnuplot for most things.. it takes a day or two to get used to it though so if you're out of time, try something else since it's not the best documented of projects. (generally i produce data graphs for physics lab reports)
gnuplot homepage
It has a learning curve, since it is mostly commandline based, but if you're in university you should be able to figure it out... I hope.
Beware he who would deny you access to information, for in his heart he dreams himself your master. -Anonymous
have you tried gnu plot?
--
"It is now safe to switch off your computer."
gnuplot is good all sorts of arbitrary graphs, but you will have to read up on its syntax to learn how to use it - no nice GUIs. But it will produce very nice postscript output that looks quite sharp when printed.
Although it's more a graphing tool, it's flexible enough to do charts, with a little work. Fortunately, there are scripts like Barchart that do most of the heavy lifting for you.
http://search.cpan.org/~kester/Chart-Scientific-0
Friend of mine wrote it a while ago to do 2-D scientific plotting. If you know some PERL, you might be able to get this to fill your needs.
--Keeping the flame wars alive, one post at a time
$ apt-cache search graph|grep graph|grep perl
libcrypt-blowfish-perl - Blowfish cryptography for Perl
libg20-perl - g2 2D graphics library (Perl module)
libgd-graph-perl - Graph Plotting Module for Perl 5
libgd-graph3d-perl - Create 3D Graphs with GD and GD::Graph
libgeography-nationalgrid-perl - Class for a point and to transform coordinate systems
libgraph-perl - graph operations
libgraphics-colordeficiency-perl - Color Deficiency Simulation
libgraphics-colornames-perl - defines RGB values for common color names
libgraphics-colorobject-perl - convert color specifications between color spaces
libgraphviz-perl - Perl interface to the GraphViz graphing tool
libsvg-tt-graph-perl - create SVG graphs from Perl
libtext-format-perl - Perl module for formatting (text) paragraphs
perl-tk - Perl module providing the Tk graphics library.
perlmagick - A perl interface to the libMagick graphics routines
libgifgraph-perl - perl GIFgraph - Graph Plotting Module for Perl 5.
Now don't quote me on this but i'm pretty sure gnu octave uses gnuplot as its engine.
It's syntax is fairly similar to several large expensive math packages and it's fairly easy once you get the hang of it (just like everything in life).
As several others mentioned gnuplot is a great program. If you would like a bit more GUI with your plotting I would recomend Grace (formally xmgrace). Its Free too. Website: http://plasma-gate.weizmann.ac.il/Grace/ It only does 2D plots but handles them very nicely, can do fitting, read tables of text file data, and is very customizable as far as lables go. I use it to plot out most of my data by pulling it straight from the output through an awk script to format the data slightly and then open Grace. Give it a shot. Good luck with 3D plots, but I might recomend maple. Again with a bit of an awk script you can format the data into a form maple can read and plot out.
It's kind of confusing at first, but it's pretty powerful.
Don't think that a small group of dedicated individuals can't change the world. It's the only thing that ever has.
Over here.
Does bar charts.
"Provided by the management for your protection."
I usually input all of my data into PostgeSQL, use R to do an analysis and insert the new data into the DB, then use ploticus to pull directly from the DB and create PNG format plots. Couldn't be easier once setup, makes writing conference papers and whitepapers (relatively) easy. If you are regenerating the same style of plot lots of times, ploticus is well worth the effort of setting up the first time.
http://www.r-project.org/
http://ploticus.sourceforge.net/
Without any doubt, Grace is the best 2D plotting program there is. Everything is configurable so you can produce anything you can imagine. The output is publication quality; ready to go into papers, books, etc.
I had the same problem as you last year. I tried gnuplot, which is good if you need to do some quick plots but are generally looked on as excel quality. I recommend XMGrace for 2-dimentional stuff. (I've published papers using this). And Mayavi for 3-D. Makes some nice purdy pictures.
GNU plot, as several people have suggested.
If your doing stats stuff, seriously look into R.
ePix looks good, although I haven't tried it.
asymptote is very powerful, although you probably want to do some tool hacking or scripting to make use of it.
Probably the ultimate tool for such things is Mathematica. Costs money, but the student version is feasible and it's a lovely for all this sort of thing.
And, of course, you could try searching freshmeat --- there are many many other tools there.
The most expensive, but very good. Comes with the kitchen sink too.
It's a very powerful set of php libraries which make it very easy to get graphs exactly how you want them, http://www.aditus.nu/jpgraph/. I've used it in a number of situations and found it extremely fast and easy to use with really professional results.
Isee Stars Astro Image Hosting.
The open-source statistics package R makes all kinds of graphs, has all kinds of great extensions for sophisticated statistical manipulations, has a following among professional statisticians, and is in active development. It is also pretty fast for large datasets, too. The language is a bit of a pain to use at first, though.
Pirates like it, too.
Warning: The intelligence of this post may be larger than it appears.
I also have all sorts of 2D and 3D plotting requirements for work... The most complicated being the need to visualize scalar data associated with points on an arbitrary triangle (or square) mesh in 3D.
At the moment, I use a combination of Matlab and Maple, both commercial programs that we have licenses for. They get the job done, but I find them both to be woefully inadequate. First and foremost, they are horrifically slow (at least in terms of actually plotting the data) for otherwise simple tasks.
I don't want to get into a flamewar with any Matlab or Maple users out there, by the way, so I'm really only making a point about the responsiveness of the GUI and the speed of generating the plots.
If there is a good open source tool for this, I'd love to hear it. I've looked and found a few things, but nothing quite adequate.
-- That tickles!
It is also free (gpl), and comes with example files for creating a variety of different graphs.
If you don't mind dropping $99, ChartDirector is pretty good. Good documentation, lots of features, good support, responsive to bug reports. It runs on Windows, Linux and FreeBSD.
VPython does some neat tricks, mostly 3D, but some 2D as well:
http://vpython.org/
ChartDirector produces snazzy looking charts, but Edward Tufte proably would not care for them:
http://www.advsofteng.com/
I haven't tried this yet, but it should work:
:)
OpenOffice's files consist of ZIPped XML files. If you create an example document in OpenOffice that is laid out how you want it, you should be able to update the content by replacing individual pieces of data in content.xml.
That's one of the things I want to try with Citygen...automatically generating OpenOffice documents will be niice.
tasks(723) drafts(105) languages(484) examples(29106)
If you just want an extremely basic program to make 2-dimenstion bar, line, or scatter graphs, xgraph is about as bare-bones simple as they come.
It runs on any Unix and dumps PostScript output files. Sometimes anything more is overkill.
http://scigraphica.sourceforge.net/
From the website:"SciGraphica is a scientific application for data analysis and technical graphics. It pretends to be a clone of the popular commercial (and expensive) application "Microcal Origin". It fully supplies plotting features for 2D, 3D and polar charts. The aim is to obtain a fully-featured, cross-plattform, user-friendly, self-growing scientific application. It is free and open-source, released under the GPL license."
How about Star Office?
Caudium has an awesome business graphics module; it can graph data from flat files, SQL, or pretty much anything else you can think of.
Depending on your needs you may use different programs for different tasks.
* Ploticus (http://ploticus.sourceforge.net/) was alredy mentioned, but I could not overemphasize its conceptual beauty and rich functionality. You may use it from a command line, which IMO is a great advantage.
* GNU plot. Old but viable solution
* If you need to do some things that are unavailable in other charting programs you may take a look at low-level libraries, such as GD (http://www.boutell.com/)
my sstream of consciousness
Most responses are gnuplot, which is pretty good although a bit crude.
I personally use Kpl (http://frsl06.physik.uni-freiburg.de/privat/still e/kpl/), but I feel QtiPlot (http://soft.proindependent.com/qtiplot.html) has a lot of potential.
Hope that helps.
yep, it's commercial, but that's if gnuplot isn't powerfull enough.
otherwise, if you want to make stats more than just for fun/to learn, you may want to give SPSS a try (well, that's what most ppl I know use for such kind of stuff, not personnal experience)
#include "coucou.h"
http://www-user.rhrk.uni-kl.de/~renn/
haven't looked into it, but I've thought about trying to use SVG for this kind of thing next time the situation arose ...
If you are facile with Java, or your data is already in a javax.swing.table.TableModel, then I suggest JFreeChart.
"This mission is too important to allow you to jeopardize it." -- HAL
play doh! makes bars... comes in cylinders... lots of color, just like graphs! whoopee!
Sig Hansen?
http://root.cern.ch/
Not quite the simplest program, but it can do what you want, is for free and available for a lot of platforms.
T
http://maxima.sourceforge.net/
Might be able to do bar graphs.
Video Production Support
HyperGraph: http://www.altair.com/software/hw_hg.htm Used this software at a previous job to produce XY plots for transient Dytran data. Plots look great, it's pretty flexible and Unix support.
grap is an implementation of Kernighan and Bentley's language for type- setting graphs, as described in ``Grap-A Language for Typesetting Graphs, Tutorial and User Manual,'' by Jon L. Bentley and Brian W. Kernighan, revised May 1991, which is the primary source for information on how to use grap. As of this writing, it is available electronically at http://www.kohala.com/start/troff/cstr114.ps
It ties in with TeX and troff rather than with fancy word processors though.
I should point out how I'm going to do it. It's actually very simple, and shouldn't require any understanding of XML.
For the template, in place of useful data, I'm going to have unique identifiers. (five or six randomly-chosen alphanumeric characters should do the trick.) Using sed, I'm going to replace each one of these pieces with a unique value.
This should work fine for a date set whose length doesn't vary, like mine. If your data set length changes from report to report, you may need a bit better understanding of the internals of the XML file.
tasks(723) drafts(105) languages(484) examples(29106)
Perl module:
.png
GD::Graph::bars
Dump some data in an array, set some values and presto one each
If KChart, Gnumeric, or Open Office can't do bar graphs, then you might as well flush them down the toilet. These must be some mighty fancy bar graphs...
"Lack of technical competence coupled with the arrogance of power, as usual, leads to no good end."
If you're using python, consider using Biggles. It does create nice 2D charts.
MAC | A polar bear is a cartesian bear after a coordinate transform.
I've also had this problem and found that xmgrace is by far the best program to use, although it only does 2D.
It can prepare publication-quality plots and lets you get the formatting just right, unlike, say, tecplot. Xmgrace also has data processing features (derivative, multiplication, etc). You can also make templates.
The only downside is that the advanced features of xmgrace aren't obvious at first -- it took me quite a while to figure out things like greek letters, templates, etc.
Honestly, it sounds like you need to try out GraphPad Prism -- although it's currently only a *dows program.
I've asked your same question in one of my posts. I haven't been diligently looking for an alternative to Graphpad Prism in Linux, because at the current moment I have an XP system running it. I've tried to install and run GraphPad Prism using Wine, and it installs fine, but graphics rendering when starting up the program fails.
I'm a biologist who needs an easy to use graphing program that creates publication quality graphs. Those of you who have used GraphPad Prism will quickly realize that graphing programs like Excel, OpenOffice, etc. are vastly inferior to the quality produced by GraphPad Prism. Prism really has no competitive counterpart in form, function, and uniformity of graphing linear and nonlinear (curve fit) regression analysis -- other than perhaps SigmaPlot or Kaleidagraph. If you are in a bind, you could try buying Crossover Linux (wine) and try running GraphPad Prism in it. If someone has found a Linux clone to GraphPad Prism, please let me know!
Linux at home
www.r-project.org
For my PhD thesis I had to produce a lot of bargraphs etc. recently, and found R combined with some perl scripts a wonderful tool.
- Hubert
DANSE has a great review of a lot of different options. Most are cross-platform and scriptable and many are open source. They are interested in building python-based tools for neutron scattering experiments, so there is that bias to the wiki. But they have good screenshots & good pros/cons that many other projects can relate to.
As others have suggested, Grace is fantastic for 2D. Hippodraw is the most under-rated/unheard of that is also quite amazing. I use them both. I also use Matplotlib with my python work.
If you do LaTeX & script your plots, Gri is a good bet.
I have sometimes used gnuplot & Scigraphica, but they are less useful to me. A lot of other people still use gnuplot, so it is always good to have in the toolkit. It also has decent 3D that is not present in my preferred 2D programs. But it is uglier and clumsier than alternatives. Scigraphica wants to be Microcal Origin, but it isn't there yet. It also dropped out of development for quite a while.
I like open source. But if you are agnostic (and have deep pockets), I always thought tecplot looked cool.
Many people recommend gnuplot. However, gnuplot is not that easy to use. I'd recommend Octave, a matlab clone, as a frontend to gnuplot.
At least I find it far far far better.
That caltech wiki page was great. Thanks!
Try GMT (Generic Mapping Tools) at http://gmt.soest.hawaii.edu/
Widely used by people in the geophysics field. It's open source, and for the basic linux user it can be a slightly fiddly to get up and running.
It's a collection of command line tools that generate postscript output. You can basically customise everything to your exact tastes, and re-use the scripts if you want consistent graphs and charts.
OK, I vote with a lot of other people on Grace/xmgrace for 2d plotting.
For higher dimensionality visualization, though, nobody has mentioned openDX (www.opendx.org). What other plotting and visualization program can easily plot 6-dimensional data (for example, a rank-3 tensor field) on a 3d space?
OpenDX takes a little while to really understand, but once you get it, the payoff is trmendous. It has a very general data model that allow one to have arbitrary topology connecting your values, from completely scattered points with no explicit relation, to various meshes such as simplices (triangles/tets), cubic/hypercubic lattices, and many more.
Also, it represents data in files very flexibly, so one can put structural information in a small, simple file, and reference a larger (potentially huge), external file for the actual data.
pychart it is pretty easy to use and makes excelent charts and graphs.
OpenOffice.org spreadsheet was not suitable?
You need bar graphs --
pic, grap (you will have to add), gnuplot, postscript.
All more complicated than OO. pic is a drawing language for troff. grap will do simple graphs (but you will have to download and install it), gnuplot is a workhorse for doing plots, but is many times more difficult than OO. And, you can always program in postscript directly! [and there are many more ways to make simple charts, including paint style programs).
Or, use OO.org
With OO.org, try:
Select some numbers that you want in a bar chart (highlight), then click (and hold) the icon on the left that looks like a pie-chart. A push-out menu appears, select the pie-chart within that. Position the chart (don't worry, you can move it later), and follow the wizard for the rest.
Best of all, the chart is live with your data -- change the data, the graph will change.
I'm curious as to why this didn't meet your needs...
Ratboy
Just another "Cubible(sic) Joe" 2 17 3061
Matlab style; works everywhere, outputs any format, uses any graphics backend. Look at the beautiful screenshots and how easy it is to generate them. Free (gratis and libre). Python License.
matplotlib site
Gnuplot does work, but its not the most user friendly piece of software, and while I've used it for rough-and-ready visualisation, I've never been able to get attractive (i.e. publishable quality) results out of it.
Since you don't specify free software, can I recommend the graphical capabilities of Matlab? As well as being endlessly scriptable and versatile, there's a GUI so you can place text and symbols anywhere you like. There's a native Linux version, and as you're a student you should be able to buy it at a more reasonable price. It's also quite possible that your university/department has a site licence of some description.
Athletic Scholarships to universities make as much sense as academic scholarships to sports teams.
I would recommend my own program Veusz! It is written in Python and is designed for publication-quality output. It doesn't do 3D plotting however, but I think the user interface is quite nice.
Jeremy
take a look at gmt. it's mostly for gis related stuff, but you can use it for damn near anything
generates postscript too, so it should be easy to integrate into your other docs
vodka, straight up, thank you!
I'm a huge open source fan, and it really riles me to have to use proprietary software, but it's hard to match what IDL can do. With a little practice you can go from raw data to publication quality plots in a staggeringly short period of time.
So far I've yet to find anything close in the open source world. PerlDL + pgplot is the best contender. The authors seem to be very careful to do things properly and a lot of the functions one needs are already available. But the documentation is a great steaming pile of beetle dung and it's almost impossible for a new person to get started, and they don't (yet?) seem to have some of nifty multi-dimensional array processing features that IDL offers.
If anyone knows of a good alternative, I'd love to hear about it! I'll be watching this thread in the hope that there's a project out there somewhere that's slipped through the cracks.
oem
Octave + GnuPlot is an amazing combination.
Octave is 99% compatible with Matlab, although the nicest Octave features are not Matlab-compatible. (For example, I've never been able to figure out how to make a Matlab program automatically save a plot to a file, and DEFINATELY not in a format that's easy to include in other documents. In Octave, it's pretty easy to automatically output plots in a wide variety of formats without any manual intervention.)
My typical workflow for projects in grad school is as follows:
Use Octave to run whatever simulations/analysis I need to run and output any plots in Encapsulated PostScript (EPS) format.
Convert all of the EPSes to small PDFs with epstopdf (This is needed for a later step)
Write up the project report in LaTeX, including the plots.
Use pdflatex to generate a really nice PDF of the project report complete with cross-references and internal hyperlinks. EVERYTHING is in vector format so it prints just as nicely as it looks on screen.
GnuPlot itself is pretty powerful, but I generally find it most useful/easiest to use Octave as a frontend to it.
retrorocket.o not found, launch anyway?
Its very expensive, but most colleges do have licenses. It can do pretty much anything and is widely used in the technical community, both acedemic and proffesional.
jgraph is quite nice. It does most of the same things as gnuplot, and is (in my opinion) a bit easier to use.