I am a bit confused about gnuplot margins. First of all I have no idea what units these things are pointing to. Are they pointing to the canvas coordinates OR are they a fraction of the canvas coordinates. Do they behave the same in gnuplot mode and multiplot mode?
My problem arises when plotting some data in multiplot mode. I am plotting to the screen (wtx terminal). Let's just say I am bungling things badly - I get plots off the canvas, or very small unreadable plots.
Without margins the first plot is flush against the top of the canvas, so naturally I want to push it down a bit.
Can someone explain how gnuplot margins work and if they behave the same in multiplot mode.
Yes, the margins behave very similar in "normal" plotting mode and in multiplot mode. Basically, the margins can have three different "modes":
set lmargin 2
. The unit is character widths (or character heights for tmargin
and bmargin
).set lmargin at screen 0.1
, which sets the left plot border at 10% of the total canvas width.The only difference of the multiplot
mode is, that the reference for the margins in 1. and 2. is given by the sites determined by the layout
option:
set multiplot layout 2,2
This subdivides the whole canvas in four rectangles of equal size. Now, using
set lmargin 1
set rmargin 1
set tmargin 1
set bmargin 1
leaves a margin of one character width or height on each side of each subplot with respect to the smaller rectangles:
set multiplot layout 2,2
set lmargin 0
set rmargin 0
set tmargin 0
set bmargin 0
set format ''
plot x
plot x**2
plot x**3
plot x**4
unset multiplot
set multiplot layout 2,2
set lmargin 1
set rmargin 1
set tmargin 1
set bmargin 1
set format ''
plot x
plot x**2
plot x**3
plot x**4
unset multiplot
If you want to set absolute positions of each border, this becomes more cumbersome, because you have to set four margins for each plot (the layout
options doesn't have any effect in this case):
set multiplot
set lmargin at screen 0.1
set rmargin at screen 0.47
set tmargin at screen 0.97
set bmargin at screen 0.6
plot x
...
Gnuplot version 5 offers a quite flexible way to produce equal rectangles, see my answer to Removing blank gap in gnuplot multiplot
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With