We stand with Ukraine to help keep people safe. Join us
All Apps
Best AppsReviewsComparisonsHow-To
When you purchase through links on our site, we may earn an affiliate commission

gnuplot for Mac

Visualize mathematical functions and data.

Free
In English
4.0
Based on 1 user rate

gnuplot overview

gnuplot is a portable command-line driven interactive datafile (text or binary) and function plotting utility for UNIX, IBM OS/2, MS Windows, DOS, Apple Mac, VMS, Atari and many other platforms. The software is copyrighted but freely distributed (i.e., you don't have to pay for it). It was originally intended as graphical program which would allow scientists and students to visualize mathematical functions and data. It does this job pretty well, and in addition it serves as non-interactive plotting engine for miscellaneous portable third-party applications, like Octave. Gnuplot is developed and supported since 1986, and having its scripts and commands easy to understand text files, it is time-portable as well.

Gnuplot supports various kinds of plots. In 2D, it can draw line, point, dot, box, histogram graphs or vector fields. In 3D, it supports line, point and dot surfaces, with or without hidden line removal. It supports color or grayscale surfaces and maps, even for non-equidistant and non-rectangular 3D data, otherwise it offers data gridding.

Gnuplot supports many different types of terminals: interactive screen terminals (with mouse and hotkey functionality), pen plotters (like hpgl), printers (including postscript and many color devices), and printings to output file as vectorial pseudo-devices like LaTeX, metafont, pdf, svg, or bitmap png. Gnuplot is easily extensible to include new devices.

What’s new in version 6.0.0

  • Function blocks and scoped variables
  • Larger collection of special and complex-valued functions
  • New plot styles
    • 2D plot style `with surface` works in 2D polar coordinates to produce a solid-fill gridded representation of the plane. This is analogous to the use of dgrid3d and pm3d to produce a 3D gridded surface.
    • 2D plot style `with sectors` renders one annular segment ("sector") for each line of input data. This style can generate pie and donut charts, windrose charts, and a polar equivalent to sparse-matrix heatmaps.
    • 2D plot style `with lines` now has a filter option `sharpen`. This filter detects spikes in a function plot that would be missed or under-represented due to coarse sampling. It adds an additional sampling point at the location of each such peak.
    • 3D plot style `with contourfill` produces 2D or 3D surfaces with distinct z-ranges indicated by solid color fill.
  • Hulls, masks, and smoothing
    • A cluster of 2D points can be replaced by a bounding polygon ("hull"). Both convex hulls and concave hulls (χ-shapes) are supported.
    • Any hull or other closed path can be used as a mask to display only selected regions of a pm3d surface or image plot.
    • New smoothing option "smooth path" can be used on 2D and 3D curves that are not monotonic on x or y. This allows smoothing of hulls.
  • Named palettes
    • The current palette can be saved to a named colormap for future us.
    • A predefined palette named "viridis" is provided.
    • Plots can specify a previously saved palette by name. This permits the use of multiple palettes in a single plot command.
    • Named palettes can be edited to contain an alpha channel.
  • New built-in functions and array operations
    • palette(z) returns the current RGB palette color mapping for z.
    • rgbcolor("name") returns the 32bit ARGB value for a named color.
    • index(Array, element) returns the first index i for which Array[i] is equal to element.
    • split("string", "separator") unpacks the fields in a string into an array of strings.
    • join(array, "separator") is the complement to split(). It concatenates the elements of a string array into a single string.
    • `stats <non-existent file>` yields a testable value with no error; useful to avoid errors or warnings in scripts.
  • Program control flow
    • New syntax if {...} else if {...} else {...}
    • XDG base directory conventions for configuration files are supported.
    • `unset warnings` suppresses output of warning messages to the console.
    • The `fit` command is protected by exception handling. Control always returns to the next line of input even in the case of fit errors. On return FIT_ERROR is non-zero if an error occurred.
    • "Watchpoints" are target values associated with individual plots in a graph. As that plot is drawn, each component line segment is monitored to see if its endpoints bracket the target value of a watchpoint coordinate (x, y, or z) or function f(x,y). If a match is found, the [x,y] coordinates of the match point are saved for later use. Possible uses include
      • find the intersection points of two curves
      • find zeros of a function
      • find and notate where a dependent variable or function f(x,y) crosses a threshold value
      • use the mouse to track values along multiple plots simultaneously
  • New terminals and terminal options
    • Terminals that display graphics in the same window as text entry now support pseudo-mousing; i.e. they respond to arrow keys and other hot-key bindings during "pause mouse".
    • New terminals kittygd and kittycairo provide in-window graphics for terminal emulators that support the kitty protocol.
    • New terminal webp generates a single frame or an animation sequence using webp encoding. Frames are generated using pngcairo, then encoded through the WebPAnimEncoder API.
    • New terminal block for text-mode pseudo-graphics uses Unicode block or Braille characters to offer improved resolution compared to the dumb or caca terminals.
    • latex terminals standalone mode updated to work with texlive2023
  • Miscellaneous other new features
    • Multiplots can now be saved, replotted, and resized interactively. This is a change from all previous gnuplot versions, where only the most recent component of a multiplot could be replotted.
    • Time unit settings for major and minor axis tics. For example, minor tic marks can be placed at exactly one month intervals.
    • The character sequence $# in a using specifier evaluates to the total number of columns available in the current line of data. "plot FOO using 0:(column($# - 1))" plots the last-but-one field of each row.
    • keyword binvalue=avg plots the average, rather than the sum, of binned data.
    • "set colorbox bottom" places the color box underneath the plot.
    • "set pm3d spotlight" adds a user-controlled spotlight to the lighting model.
    • New key layout options to force specific width or number of columns. Automatic positioning of the key on the page can be manually tweaked by giving an offset.
    • "set isotropic" adjusts the axis scaling in both 2D and 3D plots such that x, y, and z axes all have the same scale.
    • Text rotation angles are not limited to integral degree values.
    • Data-driven color assignments in plot style "histograms".
View older gnuplot versions

gnuplot for Mac

Free
In English
Version 6.0.0
Write a detailed review about gnuplot

Write your thoughts in our old-fashioned comment

MacUpdate Comment Policy. We strongly recommend leaving comments, however comments with abusive words, bullying, personal attacks of any type will be moderated.
4.0

(2 Reviews of gnuplot)

  • Comments

  • User Ratings

SickTeddyBear
SickTeddyBear
Mar 14 2011
4.4.3
0.0
Mar 14 2011
0.0
Version: 4.4.3
FYI, this is also available for installation via MacPorts.
Thierry46
Thierry46
Nov 10 2010
4.4.2
0.0
Nov 10 2010
0.0
Version: 4.4.2
Hello Here is an additional comment to JIMCLARK01's tips to compile gnuplot 4.4.2 under Snow Leopard (Mac OS X.6) with PNG, JPEG output available : X11 should be installed on your computer (From Mac OSX install DVD). gnuplot needs libgd library to support graphics output formats like PNG. You have to install libgd first and to link gnuplot with it. 1 - Download libraries JPEG (jpegsrc.v6b.tar.gz), FreeType 2.4.3, and GD 2.0.35 (Find them on the Web, copy the .tar.gz file in a directory , uncompact them with the Finder) Then in a terminal window : 2 - Install lib jpeg-6b : cd jpeg-6b cp /usr/share/libtool/config/config.sub . cp /usr/share/libtool/config/config.guess . ./configure --enable-static --x-include=/usr/include/X11 --x-libraries=/usr/X11/lib make sudo make install sudo ranlib /usr/local/lib/libjpeg.a Library will be put be in /usr/local : /usr/local/lib/libjpeg.a Remarks : --enable-shared don't work make install produce an error with doc, ignore it. 3 - Install freetype-2.4.3 cd freetype-2.4.3 ./configure make sudo make install 4 - Install libgd cd gd-2.0.35 sudo ln -s /usr/X11R6/include/fontconfig /usr/local/include sudo cp -r /usr/X11/include/*png* /usr/local/include ./configure --with-x --x-include=/usr/include/X11 --x-libraries=/usr/X11/lib --with-png=/usr/X11 make sudo make install 5 - rebuild gnuplot ./configure --with-readline=bsd --x-include=/usr/include/X11 --x-libraries=/usr/X11/lib Verify here that png terminals are detected in configure's output make sudo make install 6 - To make libgd support fonts export GDFONTPATH=$HOME/Library/Fonts:/Library/Fonts:/System/Library/Fonts before you launch gnuplot or put GDFONTPATH initialization in your ~/.bash_profile
dieguico
dieguico
Jan 20 2011
4.0
Jan 20 2011
4.0
Version: null