It is possible to manage multiple plots at a time, printing plots to png, eps or pdf files or creating plots directly on png or eps or pdf files.
There are also several handy operations for decorating plots which are common to many of the plotting functions.
Manually set the location of gnuplot executable.
Manually set the gnuplot terminal.
Close all gnuplot active connections. This will not be able to close open windows, since on the backend gnuplot also can not close windows.
Select (or create) a new figure with id n
. Note that until a plot
command is given, the window will not be created. When n
is
skipped, a new figure is created with the next consecutive id.
Sets the label of x
axis to label
. Only supported for gnuplot
version 4.4 and above.
Sets the label of y
axis to label
. Only supported for gnuplot
version 4.4 and above.
Sets the label of z
axis to label
. Only supported for gnuplot
version 4.4 and above.
Sets the title of the plot to title
. Only supported for gnuplot
version 4.4 and above.
If toggle
is true
then a grid is displayed, else it is
hidden. Only supported for gnuplot version 4.4 and above.
Set the location of legend key. hloc
can be left
, right
or
center
. vloc
can be top
, bottom
or middle
. Only
supported for gnuplot version 4.4 and above.
Sets the properties of axis for the current plot.
auto
: auto scales the axis to fit data and plot canvasimage
: scales the axis aspect ratio so that a circle is drawn as circle.equal
: same asimage
.fill
: resets the aspect ratio of the plot to original values so that it fills up the canvas as good as possible.{xmin,xmax,ymin,ymax}
: Sets the limits of x and y axes. Use an empty string (2 apostophes in a row) if you want to keep the current value.
This command is useful for advanced users of gnuplot. command
is
directly passed to gnuplot without any formatting.
Let's see an example, by plotting labels for the xtic
LondonTemp = torch.Tensor{{9, 10, 12, 15, 18, 21, 23, 23, 20, 16, 12, 9},
{5, 5, 6, 7, 10, 13, 15, 15, 13, 10, 7, 5}}
gnuplot.plot({'High [°C]',LondonTemp[1]},{'Low [°C]',LondonTemp[2]})
gnuplot.raw('set xtics ("Jan" 1, "Feb" 2, "Mar" 3, "Apr" 4, "May" 5, "Jun" 6, "Jul" 7, "Aug" 8, "Sep" 9, "Oct" 10, "Nov" 11, "Dec" 12)')
gnuplot.plotflush()
gnuplot.axis{0,13,0,''}
gnuplot.grid(true)
gnuplot.title('London average temperature')
We can show another example of its usage by labeling data points. Here, we generate two clusters of data with two Gaussian distributions, write it to a text file in three columns of (label, x_coor, y_coor), and plot the points with labels.
labels_tab = {}
for i=1,20 do
table.insert(labels_tab, math.ceil(i/10))
end
x = torch.cat(torch.Tensor(10):normal(2, 0.05), torch.Tensor(10):normal(3, 0.05), 1)
y = torch.cat(torch.Tensor(10):normal(2, 0.05), torch.Tensor(10):normal(3, 0.05), 1)
file = io.open('gaussians.txt', 'w')
io.output(file)
for i=1,20 do
io.write(string.format('%d %f %f\n', labels_tab[i], x[i], y[i]))
end
io.close(file)
gnuplot.pngfigure('plot_labels.png')
gnuplot.title('A Tale of Two Gaussians')
gnuplot.raw("plot 'gaussians.txt' using 2:3:(sprintf('%d', $1)) with labels point pt 7 offset char 0.5,0.5 notitle")
gnuplot.xlabel('x')
gnuplot.ylabel('y')
gnuplot.grid(true)
gnuplot.plotflush()