I recommend focusing on one scripting-capable program. Mastery of one program takes time. After you master one program, learning the second will take less effort. Scripts enable reproducible work and, in the long run, save time. Excellent free choices are Gnuplot, Grace, Matplotlib in Python, PyPlots in Julia from Python, Gadfly in Julia from **ggplot2** in **R**. Of these programs, Gnuplot offers the most exquisite control over the output's appearance. Matplotlib is a close second to Gnuplot, but its scripting syntax baffles beginners. You can save a lot of time by reading the beginning of the documentation and this paper by its originator, John Hunter. Most of these programs also do curve fitting. Proprietary packages like MATLAB, Mathematica, and JMP also offer curve fitting. To get the most out of the proprietary packages, you have to run them with scripts. Plots made in high-level packages are good for rough drafts but can be made publication-quality with extensive customization.
- ArviZ, a high-level data visualization platform for Bayesian data analysis (BDA) with output from many BDA programs. Has Python and Julia ports.
- boomer a pharmokinetic package by David Bourne Ph.D. OUHSC College of Pharmacy
- fityk Now free. Nonlinear curve fitting for scientists. Available in MacPorts.
- Gadfly.jl
- ggplot2 Implements the grammar of graphics in R. See plotnine below for one of several Python implementations.
- gnuplot wikipedia open source, free. Built by scientists.
- Gnuplot main page Do not be put off by the 1990s webpage. The program deserves more love than it gets. Gnuplot offers more control over output than any other program I have tried. The Gnuplot website has a vast collection of examples and scripts. Gnuplot is available through many package managers. Emacs has a gnuplot-mode, and org-mode uses Gnuplot to make plots. The Gnuplot scripting language supports iteration.
- gnuplotting A source of inspiration for Gnuplot users.
- Grace (open-source)
- Grace (xmgrace or xmgr), wikipedia open source, free.
- GraphPad $$$ Requries an annual license.
- Hanami, a Clojure(Script) library and framework for creating interactive visualization applications based in Vega-Lite (VGL) and/or Vega (VG) specifications.
- JMP $$$ GUI-driven program developed by the makers of SAS. Has excellent documentation.
- HippoDraw (open-source)
- IGOR pro $$
- JASP, supports GUI-driven frequentist and Bayesian data analysis
- Kalidagraph $$
- Labplot, an easy-to-install and gui-driven, open-source curve-ftting application. Labplot YouTube channel with 23 short tutorial videos
- Mathematica, $$$
- Matlab $$$
- Matplotlib the leading Python plotting package. Built by scientists. 30+ high-level plotting packages are built on top of it. The high-level plots are great for quick plots but often not for publication. You'll eventually need to master matplotlib. Julia uses matplotlib for its PyPlots package.
- matplotlib, wikipedia
- NumeRe , provides curve fitting, data analysis and numerical calculation in one package. Free, open-source, GLP'ed, executable for MS Windows only. Source code is available. Ports to other operating systems are welcome.
- Octave Open source analog of Matlab.
- Origin $$$
- OZ, a Clojure data visualization package that uses Vega and VegaLite.
- plotnine , free, open source, ggplot2 for Python. Can make xkcd plots.
- PyPlot.jl
- QtGrace Grace based on the Qt-SDK by the qt-project. Available for Mac, Windows, and Linux.
- Qtiplot (like Origin but cheaper)$
- R project Open source, free, available in MacPorts and Homebrew.
- R wiki
- Rstudio (Posit) , browser-like interface to R that supports plotting with R
- SciDAVis,free
- seaborn , high-level wrapper for Matplotlib in Python.
- SigmaPlot $$$
- Standards Applied.com nonLinear-curve-fitting-calculator. This is very cool!!
- Vega-lite , a high-level grammar of interactive graphics. Based on JavaScript.
- Veusz a scientific plotting program built with Python. Open-source, free. Like Matplotlib but with an attractive GUI.
- VisualEnzymics, requires Igor Pro $$
- WolframAlpha on-line access for plotting funcitons.
- Xfig, a venerable vector drawing program with dated gui
- List of curve fitting software
- Nonlinear Curve-Fitting, Webpage
- Manual grabbing of data off a plot: instructions for pdf-->svg-->grep x-y coordinates to text file. Easy to take a snapshot (.jpg) of the PDF file and use
/Applications/plotdigitizer. - plotdigitizer: a Java program (ver. 2.5 in /Applications), bitmap (*.png) to vector converter, pick points or outline a curve and record X,Y values for replotting in another program. Option for log scale.
NIH: R01 CA242845, R01 AI088011 NIH: P30 CA225520 (PI: R. Mannel); P20GM103640 and P30GM145423 (PI: A. West) OCAST HR20-002; PHF Team Science Grant
| Version | Changes | Date |
|---|---|---|
| Version 0.2 | Added badges and update table | 2024 April 15 |