Data visualizing is an important part of data analysis because it helps people to find patterns in the data and comprehend manner out of them. Thanks to computers, it is increasingly becoming easier and faster to generate complex graphs and plots.
This article is a list of Linux applications that can be used to produce charts and plots from raw datasets . Please do note that we don’t count office suites such as LibreOffice or WPS Office. While they do offer plotting features, they do not have a lot of options and severely limited in terms of functionality.
GnuPlot is an open source program built for generating 2D and 3D plots of functions and data. It it available on most major platforms, including Linux, Windows, macOS, Unix.
Despite being a command-line program, numerous GnuPlot GUI have been developed, offering the power of the program in an easy to use way. Notable GUIs for GnuPlot includes gretl, Jgnuplot, GPlot, Kayali. Besides that, there are applications that uses GnuPlot internally along with other libraries, such as GNU Octave, feedgnuplot.
GnuPlot can read and write data in multiple formats. Input data can be read from other programs through a Linux pipe, or from a binary file. Output can be written into PNG/EPS/SVG/JPEG files, or better yet, LaTeX code that can be pasted directly into existing documents.
GnuPlot can create a huge number of graph and plot types, including contour plots, parametric equations, time-series data, box plots, etc. It supports various linear and non-linear coordinate systems. You can customize almost every elements on the plot, including shapes, text and images.
gnuplot also provides scripting capabilities, looping, functions, text processing, variables, macros, arbitrary pre-processing of input data (usually across columns), as well ability to perform non-linear multi-dimensional multi-set weighted data fitting
Matplotlib is the most widely used library when it comes to scientific plotting. It is written in Python and closely mimics the MATLAB inteface, which is already familiar with engineers and scientists worldwide.
The library is proven to be capable of generating high-quality plots which have been used in numerous publications. Though, it requires a little bit of coding experience to get started.
Besides plotting to image formats (JPG, PNG, SVG, EPS) like any other programs, Matplotlib can also used to make interactive figures that users can zoom, pan, update, and even embed in websites.
On top of the library, numerous third-party toolkits and libraries have been built to extend Matplotlib for all kinds of use cases.
Find out more about Matplotlib at https://matplotlib.org/
Octave is an interactive programming language specifically suited for vectorizable numerical calculations. It provides a high level interface to many standard libraries of numerical mathematics, e.g. LAPACK or BLAS. GNU Octave is free and open source, runs on most major platforms such as GNU/Linux, macOS, BSD, and Microsoft Windows.
Octave is designed to be compatible with MATLAB, which is already familiar to millions of engineers and scientists worldwide. Some of its similarities with MATLAB includes:
- Matrices as fundamental data type.
- Built-in support for complex numbers.
- Powerful built-in math functions and extensive function libraries.
- Extensibility in the form of user-defined functions.
Early versions of GNU Octave relies on gnuplot to do most of its plot-related jobs, but now newer, better plotting capability is provided by access to OpenGL. GNU Octave is able to create both 2D plot (using
plot()) and 3D plot (with
mesh()). Details about other plotting features as well as customizing options can be found at GNU Octave Documentation on Plotting.
Octave is a part of the GNU project, find out more at https://www.gnu.org/software/octave/
LabPlot is a free, open source data visualization and analysis software maintained by the KDE project. The software provides an easy way to create 2D and 3D plots from a spreadsheet or data imported from external files.
Better yet, LabPlot is capable of handling streaming input data and generating real-time plots. Data can be streamed using files, pipes, network sockets, MQTT or serial ports. The data can be read periodically where the user can specify the time interval for when to read the new data or alternatively on data changes. At the moment, the only supported formats are ASCII and binary data.
On the output side, plots can be exported to several image and vector graphic formats. Currently supported formats are : BMP, JPG, JPG2000, PBM, PGM, PNG, PPM, TIFF, XBM, XPM, PS, EPS, PDF, SVG and QPicture(PIC). Supports for even more image formats can be extended via ImageMagick.
If you’re familiar with scientific applications, LabPlot is kind of a Origin/Igor (or kind of Excel) replacement. If you’ve got a bunch of CSV-formatted data files and you need to analyze them, make plots with nice labels, fit curves… without writing codes and commands, LabPlot is the the right tool for the job.
You can find out more information about LabPlot in its official website.
Veusz is an open source scientific plotting and graphing program with a graphical user interface, designed to produce high quality 2D and 3D plots.
Veusz runs on most major platforms, including Windows, Linux/Unix and macOS. It can export generated plots to various vector and bitmap output, including PDF, Postscript, SVG and EMF.
Veusz widgets include X-Y plots, functions, contours, box plots, polar plots, ternary plots, vector plots, data images, labels and a variety of shapes. Input data can be stored in standard formats such as CSV, HDF5 or FITS, or entered, edited or created using functions from existing datasets.
Veusz is well-integrated with Python. Users can write their own plugin in Python to read data from other formats. The program also provides scripting capabilities and command-line interface, which allows for executing Veusz from en external program or system.
ZeGrapher is a free and open source software, which aims primarily at math plotting. It can plot functions, sequences, parametric equations and data on the plane.
The software seems to be primitive compared to the others on this list, but it should be enough if you need simplicity. ZeGrapher can plot up to six functions at the same time. Both numerical sequence plotting and parametric equation plotting is supported, with customizable options such as animated curves, adjustable framerate and speed, etc.
ZeGrapher supports all basic features that a plotter needs to have, including zoom, pan, interactive coordinate pop up, export to image files (PNG, JPG, TIFF, GIF), PDF output, grayscale/color printing. You will also be able to customize colors for every elements in the plot, adjust plotting precision, fine-tune curves smoothing before actually exporting the plot.
More information about ZeGrapher can be found at https://zegrapher.com/en/
DataMeIt (DMeIt) is a free, open-source software platform capable of performing statistical analysis, numerical computation, data visualization on a large amount of data. It is often used to analyze natural events and modeling/analysis financial markets data.
DataMelt is written in Java with hundreds of Java packages already available. It and can be integrated with scripting languages, such as Python, Ruby, Groovy (and others). It runs on most major platforms such as Windows, Linux, Mac and Android.
DataMeIt has powerful plotting features, which can be used to produce both 2D and 3D plots. The software supports various plot types : contour, scatter plots, random numbers and statistical samples, 2D and 3D interactive visualization, etc. DataMeIt can export plots to high-quality vector graphics: PostScript , EPS , PDF as well as numerous raster format such as JPG, PNG.
More information and downloadable executables can be found at https://datamelt.org/
We hope that the information above help you find the suitable plotting software to install on your Linux machine.
If you have any suggestion, please feel free to leave a comment below.