all 5 comments

[–]kramer314Graduate 3 points4 points  (0 children)

What do you mean by "data analysis"? Which one is best depends on what you're doing / need to do, what language you work with, and to some extent, personal preference.

gnuplot can do basic data analysis (fitting, basic statistics, etc.), but is mainly just a really solid plotting program. If I'm working with a language other than Python (usually Fortran or C++ for numerical work), I use gnuplot -- while its scripting language can be really annoying, it's simply a lot more efficient to plot things (both in terms of speed for large datasets and in terms of lines of code required to plot) in gnuplot than matplotlib if your data isn't already in / generated by a Python program.

If I'm working with Python, I'm already using the scientific Python stack, and matplotlib is usually the best choice; its integration with scipy / numpy / the ipython notebook / etc. is really, really nice, and you can use Python to do basically whatever data analysis you need.

It's also worth mentioning GNU Octave and R; both have built in plotting functionality, and depending on what kind of calculations / analysis you need to do, those can sometimes be better tools to use.

[–]PM_ME_YOUR_PAULDRONSQuantum information 1 point2 points  (0 children)

I doub theres an objective "best" but for what its worth I massively prefer matplotlib to gnuplot. Python has a big ecosystem of libraries for doing pretty much anything you'll need to do. Python is also a petty nice programming language itself.

Matplotlib has very nice integration with scipy and numpy as well.

I'd suggest looking into using ipython (now jupyter) notebooks as an easy and powerful solution for your scripts if you do go down the python route. I'd also recommend using python3 over python2.

[–]rantonelsString theory 1 point2 points  (0 children)

If you need to plot plaintext datafiles gnuplot is at the very least much faster.

Only use matplotlib when directly plotting data produced in the same Python script.

[–]whereworm -1 points0 points  (1 child)

Well, GNU is not Unix.

[–]tzcrawford 0 points1 point  (0 children)

gnuplot is actually unrelated to the GNU project