gnuplot / plot (1E)

About 2-Dimensional Plot (No.1)

I want to make a fixed-size plot.

The area in which gnuplot draws a graph depends on axis and tic
labels. To fix the size of the graph, you need to adjust margins by
set margin . An option of
this command is the number of letters. There are four
kinds of margin, top (tmargin), bottom (bmargin), left (lmargin), and
right (rmargin). As the defaults all margins are calculated
automatically. Current setting can be displayed by:

gnuplot> show margin

lmargin is computed automatically
bmargin is computed automatically
rmargin is computed automatically
tmargin is computed automatically

The next shows an example in the case that all margins
are given manually.

gnuplot> set lmargin 10
gnuplot> set bmargin 3
gnuplot> set rmargin 2
gnuplot> set tmargin 1

When the margins are defined explicitly like above,
the size of graph does not change even formats of the X and Y
tics are changed.

fig/sample5.1a
fig/sample5.1b

To fix the position of axis labels, specify the offset options
of set {x|y}label command.

up

I want to use both sides of Y-axes.

It sometimes happens that one wants to put several graphs in one
plot. With gnuplot you can use top and bottom axes, and left and
right axes separately.

As the defaults Y2 axis is the same as the Y (left) axis. Let’s
make those two axes different, and plot sin(x) and its square at the
same time. An option of axis in the plot command
defines which axis is used for scaling. The syntax is axis
+ x1y1, x1y2, x2y1, x2y2. For example axis x1y2 means that
this function or data will be scaled by the bottom X-axis and the
right Y-axis.

gnuplot> set xrange [0:2*pi]
gnuplot> set yrange [-1:1]
gnuplot> set y2range [0:1]
gnuplot> plot sin(x)    axis x1y1, 
sin(x)**2 axis x1y2
fig/sample5.2a

In this case the tics on the right axis is the same as those
on the left axis. To make those different one can use a
nomirror option to the set ytics command, and
set y2tics makes different axis on the right border.

gnuplot> set y2tics 0, 0.2
gnuplot> set ytics nomirror

fig/sample5.2b

When you use the both axes, you need to specify which axis is used
for each data. An arrow is often used
for this purpose. This can be done by set arrow .


up

I want to erase axes.

Gnuplot draws top, bottom, left, and right frames. To erase those
frames, use set border n . An integer is assigned
for each frame line, the bottom is 1, left 2, top 4, and right 8. The
option n is the sum of those integers. For example, only X1
axis is shown if n=1, X1 and Y1 axes for n=3, all four border lines
for n=31. The set border command only affects the border
lines, so that tics remain even if n=0. In order to erase axes,
you need set no{x|y}tics or set {x|y}tics nomirror.
The following example shows how to erase the top and right
border.

gnuplot> set border 3
gnuplot> set xtics nomirror
gnuplot> set ytics nomirror
fig/sample5.3
up

I want to draw a square or fixed aspect ratio figure.

This subject had been known for the old version gnuplot
as a very difficult matter, but it is supported nowadays.
To make a square plot, give an option square
to the set size command.

gnuplot> set size square

Similarly, to fix the aspect ratio:

gnuplot> set size ratio 2

In this case the Y axis length is two times longer than the
X axis. This ratio is independent of the values of the X and Y axes.
In order to set the scales so that the unit has the same length on
both the X and Y axes, give negative value for the ratio. If the
ratio is -1, the unit length for the X axis is the same as that
for the Y axis. If -2, the Y axis becomes two times longer.

fig/sample5.4a
square
fig/sample5.4b fig/sample5.4c
ratio 2 ratio 0.5
fig/sample5.4d fig/sample5.4e fig/sample5.4f
ratio -1 ratio -2 ratio -4
up