Currently in gnuplot, one has to resort to some mild trickery (a la the last demo on this page: http://gnuplot.sourceforge.net/demo_4.6/layout.html) to get things such as xlabel, ylabel or the key for a multiplot, especially if you are picky about getting the plots the same size. It would be nice to be able to specify these in the same way as for regular plots, e.g.
set multiplot layout 4,1 title 'My many plots' set multiplot xlabel 'Overall xlabel' set multiplot key
In this setup, the multiplot [key|xlabel|ylabel]
commands would automatically adjust the margins/size of the multiplot as the regular commands do for regular plots. The key could accumulate labels from all the other plots, possibly with an option to not include duplicates.
I understand that this may be tricky to implement for a number of reasons, but it is my and my colleagues' main frustration with multiplot.
We already have "set multiplot title"
Could you explain what the effect of "set multiplot xlabel" would be? Setting xlabel is already persistent and affects all plots in the multiplot. What would this do differently?
set multiplot xlabel
(for the example of amultiplot layout
column of several plots with a shared time axis) would set an xlabel below the bottom plot only, and adjust the vertical sizes of the plots to accommodate the label. Similarly,multiplot ylabel
would adjust the x dimension of a row of plots to fit a ylabel on the left/rightmost plot.Currently the strategy to do this is something like
to get the xlabel on only the bottom plot. The problem with this is that now the plots are different sizes--only the bottom one has shrunk to accommodate the label.
The
multiplot xlabel/key
options may only make sense as an option formultiplot layout
, since otherwise the user is probably going to have to set margins, etc. manually anyway, and gnuplot would not be informed of the dimensions of each plot beforehand.It is common enough practice to produce a column/row of plots with a single axis label for all the plots that I think this would be a very useful option to have.
Here is an example where this would be useful.
Here is another.
Andrew,
a plot like the second example you gave was my motivation to write the patch http://sourceforge.net/p/gnuplot/patches/611/. I don't know if this would fit your needs.
It allows one to specify fixed margins and fixed spacing between all plots in a multiplot.
Christoph