我必须绘制4个图形,它们之间没有垂直空格,并在我的tex文档中添加标题。我认为问题是标题与x轴标签重叠,因为底部边距为零。
gnuplot文件是这样的
set term epslatex
set output 'foo.tex'
set xrange [-1:1]
set yrange [-1:1]
set multiplot layout 4,1
set ylabel '$y$'
unset xlabel
unset xtics
set tmargin 0
set bmargin 0
plot x w lines
plot x*x w lines
plot x*x*x w lines
set xlabel '$x$'
set xtics
plot x*x*x*x w lines
unset multiplot
并且tex文件是
\documentclass[a4paper,11pt]{toptesi}
\usepackage{graphicx}
\begin{document}
\begin{figure}
\input{foo}
\caption{bla bla}
\end{figure}
\end{document}
并且“bla bla”来自x标签......我试图在最后一个图形之前设置一个bmargin“某事”,但是这个问题是最后一个图形不再是前三个图形的大小了...如何修复图的大小,但允许使用tex标题的bmargin?
答案 0 :(得分:0)
试试这段代码......
set term epslatex size <width> <height>
set output 'foo.tex'
set xrange [-1:1]
set yrange [-1:1]
set multiplot
# setup sizes of single plots
set size 1,.25
set ylabel '$y$'
unset xlabel
unset xtics
set tmargin 0
set bmargin 0
# set bottom left corner of current plot
set origin 0,.75
plot x w lines
set origin 0,.5
plot x*x w lines
set origin 0,.25
plot x*x*x w lines
set xlabel '$x$'
set xtics
# set bmargin back
set bmargin 3 #might be enought for place xlabel, try it...
set origin 0,0
plot x*x*x*x w lines
unset multiplot
set out
set term pop
但是......底部面板比其他面板小,因此您必须增加底部面板的垂直尺寸(使用set size 1, a
)a>0.25
并减小其他人的垂直尺寸(set size 1, b
之前每个绘图命令)并满足a+3b=1
。这种微调将取决于epslatex终端的大小参数。
可能会有更好的解决方案:
...
set size 0,.25
set tmargin 0
set bmargin 1
set origin .75,0
plot ...
set tmargin -1
set bmargin 2
set origin .5,0
plot ...
set tmargin -2
set bmargin 3
set origin .25,0
plot ...
set tmargin -3
set bmargin 4
set origin .25,0
plot ...
现在我们可能有足够的空间用于底部xlabel,并且所有面板都具有相同的高度。 Unfotunatelly gnuplot 4.6.3将tmargin -3
解释为tmargin 0
。所以我们现在不能使用它...可能是在一些较新的版本中。