A plugin that allows the display of GnuPlot graphs.

Syntax Rules

  • Just add %GNUPLOT{"PlotName"}% anywhere in the page where you want the plot to appear and save the topic
  • Multiple plots can be displayed within one topic
  • Any CSV (Comma Seperated Variable) file attached to the topic can be used with the plot or splot commands


The following images are examples of plots generated by GnuPlot:

Simple function test

Pre-rendered sample (TestInstall):
Plugin (TestInstall):

Verbatim (TestInstall):

Plot settings:
set title "TestInstall"
set datafile separator ","
set terminal png
plot sin(x), cos(x), x*x/10

Multi graphs with errorbars, datafile based

Pre-rendered sample (MultigraphWithErrorbars):
Plugin (MultigraphWithErrorbars):

Verbatim (MultigraphWithErrorbars):

Plot settings:
set title "MultigraphWithErrorbars"
set xlabel "X Axis Label"
set ylabel "Y Axis Label"
set term gif
set data style lp
set terminal png
plot [.8:4.2] "" using 1:2 t "Curve Title", \
"" using 1:2:3:4 notitle with errorbars ps 0, \
"" using 1:5 t "Other Curve", \
"" using 1:5:6:7 notitle with errorbars ps 0

Damped sinus, datafile based

Pre-rendered sample (DampedSinus):
Plugin (DampedSinus):

Verbatim (DampedSinus):

Plot settings:
set title "DampedSinus"
set xlabel "X Axis Label"
set ylabel "Y Axis Label"
set terminal png
plot ''

Map of Denmark, datafile based (data from CIA World Data Bank II)

Pre-rendered sample (CIAWorldDataBankIIDenmark):
Plugin (CIAWorldDataBankIIDenmark):

Verbatim (CIAWorldDataBankIIDenmark):

Plot settings:
set title "CIAWorldDataBankIIDenmark"
set noxtics
set noytics
set noborder
set data style dots
set terminal png
plot "" title "" with lines 

Interlocking Tori (3D)

Pre-rendered sample (InterlockingTori):
Plugin (InterlockingTori):

Verbatim (InterlockingTori):

Plot settings:
set parametric
set isosamples 50,10
set hidden
set title "Interlocking Tori"
set key below
set urange [-pi:pi]
set vrange [-pi:pi]
set isosamples 50,20
set terminal png
splot cos(u)+.5*cos(u)*cos(v),sin(u)+.5*sin(u)*cos(v),.5*sin(v) with lines, 1+cos(u)+.5*cos(u)*cos(v),.5*sin(v),sin(u)+.5*sin(u)*cos(v) with lines

Blue Whale (3D), datafile based

Pre-rendered sample (BlueWhale):
Plugin (BlueWhale):

Verbatim (BlueWhale):

Plot settings:
set parametric
set hidden3d
set nokey
set xrange [0:8]
set yrange [-4:4]
set zrange [-2:2]
set data style line
set title "Blue Whale"
set terminal png
splot "whale.dat"

Alternative GnuPlot render sizes, Rosenbrock Function

This one is shown in 350x280. Try blowing it up in size - alter the set terminal png size 350,280 line into something larger (i.e. 1000,1000).

Pre-rendered sample (RosenbrockFunction):
Plugin (RosenbrockFunction):

Verbatim (RosenbrockFunction):

Plot settings:
set logscale z 10
set view 20, 340, 1, 1
set isosamples 60, 60
set hidden3d offset 1 trianglepattern 3 undefined 1 altdiagonal bentover
set style data lines
set ticslevel 0
set title "Rosenbrock Function" 0.000000,0.000000  font ""
set xlabel "x" -5.000000,-2.000000  font ""
set xrange [ * : * ] noreverse nowriteback  # (currently [0.00000:15.0000] )
set ylabel "y" 4.000000,-1.000000  font ""
set yrange [ * : * ] noreverse nowriteback  # (currently [0.00000:15.0000] )
set zlabel "Z axis" 0.000000,0.000000  font ""
set zrange [ * : * ] noreverse nowriteback  # (currently [-1.20000:1.20000] )
set terminal png size 350,280
splot [-1.5:1.5] [-0.5:1.5] (1-x)**2 + 100*(y - x**2)**2

Plugin Settings

  • One line description, is shown in the TextFormattingRules topic:
  • Set SHORTDESCRIPTION = Allows users to plot data and functions using GnuPlot

  • Debug plugin: (See output in data/debug.txt)
  • Set DEBUG = 0

Plugin Installation Instructions

Note: You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the server where TWiki is running.

  • Download the ZIP file from the Plugin web (see below)

  • Download the ZIP file from the Plugin web (see below)
  • Unzip in your twiki installation directory.
    File: Description:
    data/TWiki/GnuPlotPlugin.txt Plugin topic
    data/TWiki/GnuPlotPlugin.txt,v Plugin topic repository
    lib/TWiki/Plugins/ Plugin Perl module
    lib/TWiki/Plugins/GnuPlotPlugin/ Perl module responsible for rendering the plot area
    lib/TWiki/Plugins/GnuPlotPlugin/ Perl module responsible for managing the settings

  • In /lib/TWiki/Plugins/GnuPlotPlugin/ look for the following line and update the paths to fit your environment:
    # Update $gnuplotPath, $gnuplotHelperPath and $execCmd to fit your environment

Planned improvements

  • TWiki compatible syntax for using datafiles from any topic.
  • Form based editing of plot settings to make it easier for users that are not familiar with GnuPlot

Plugin Info

Plugin Author: TWiki:Main.AbieSwanepoel
Plugin Version: 30 Apr 2006: (V1.030)
Change History:
30 Apr 2006: Added sandbox security mechanism (TWiki:Main.SteffenPoulsen)
19 Apr 2006: Fixed anchors, added 3D examples, added png size option (TWiki:Main.SteffenPoulsen)
17 Apr 2006: Doc update, changed working dir to ATTACHURLPATH (TWiki:Main.SteffenPoulsen)
27 Jan 2006: Initial version
TWiki Dependency: $TWiki::Plugins::VERSION 1.1
CPAN Dependencies: none
Other Dependencies: GnuPlot (available from with support for a PNG terminal
Perl Version: 5.005
License: GPL ( GNU General Public License)
Benchmarks: GoodStyle 100%, FormattedSearch 100%, GnuPlotPlugin 100%
Plugin Home:

Related Topics: TWikiPreferences, TWikiPlugins

-- TWiki:Main.AbieSwanepoel - 27 Jan 2006

Current Tags:
create new tag
, view all tags
Topic revision: r14 - 2006-04-30 - 19:37:56 - TWikiContributor

Computational Fluid Dynamics and Turbulence Mechanics
@ the University of Manchester
This site is powered by the TWiki collaboration platformCopyright & by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Note: Please contribute updates to this topic on at TWiki:TWiki.GnuPlotPlugin