My involvment with gnuplot

I started using gnuplot to plot data and prepare figures for publication early in my career. In 2004 I joined the gnuplot development team to contribute some bits I had written locally to improve the presentation of data from my lab.

I have continued to add new capabilities to gnuplot, either because I need them for my own use or in response to requests from other gnuplot users. Eventually I found myself acting as a lead developer for the project.

This web page has samples of some features in gnuplot that I had hand in developing.

Motivated by work in crystallography

Voxel data

polygons in 3D

Geographic data

My life is spent in atomic coordinate space more than in geographic latitude/longitude space.
But maps are sooo nice for conveying information tied to specific locations. Here is a proof-of-principle demonstration of pulling geographic coordinates from a standard format (GEOJSON) file and using them to create a map in gnuplot.

Nonlinear axes

Gnuplot 5 introduced a general mechanism for defining nonlinear axes. Here are examples of how this can be used.

Hypertext

hypertext in a 2D plothypertext in a 3D plot

Sixel terminal output

Gnuplot 5 added a new sixel terminal based on libgd and sixel code from http://nanno.dip.jp/softlib/man/rlogin/#REGWIND. To get the full benefit on linux you need a terminal emulator that supports 256-color sixel graphics. The ones I know of that work out-of-the-box are mlterm and rlogin. The standard xterm and its derivatives emulate only the 16-color vt340 by default; sixel graphics and 256 color support are configuration options that may or may not have been chosen when your copy of the program was built. If you know of other alternatives, please let me know!
Screen shots of the sixel terminal in use

From the linux console (no X11 active)
One great thing about using sixel graphics is that it does not require X11. Indeed it was invented to allow bit-level graphics on a dumb-as-rocks character cell terminal or vt50 printer. You can use it from the linux console so long as your console terminal emulator understands sixel. I recommend the yaft (yet another frame buffer) console terminal.

Some lesser-known features in Gnuplot

Use of 3D impulses to display heat maps
This technique works well when you have individual values for many x/y data points rather than a smooth surface.
Extra information associated with each point in a data file
Here is a neat plot that uses the "with labels" style to place city names at their geographic coordinates,
with the population indicated by font size.
Click for full-size image

Ethan A Merritt
May 2026