我在 gnuplot 上生成等高线图并输出 eps 文件,然后我在乳胶中运行这些文件。这是四个等高线图,我需要它们都在我的页面的同一级别上。我很接近但是;
你可以看到剩下的三个图的空白占据了一些空间,如果它们被移除,它肯定会全部放在一条线上(所有图片都在同一水平上)。这是我的 gnuplot 代码的示例(对于那些没有 y 轴的代码);
reset
set size 0.38, 1
set terminal epslatex
set out 'finalpolar2.tex'
set termoption dash
#set title istitle;
set font "20"
unset xlabel
unset ylabel
set format y ""
set ylabel offset 1.5;
set palette model HSV rgbformulae 7,5,15
set contour;
set view map;
unset surface;
set cntrparam levels 8;
set isosamples 50;
unset key;
set size ratio 2
set xtics 0,0.5,40
set cbtics 0,0.02,40
set cbtics offset -1;
splot 'loop_final.txt' w l lw 5 palette notitle
set out
Run Code Online (Sandbox Code Playgroud)
(其中一些内容无关紧要,它们是从旧代码复制/粘贴的)。在图像本身开始变短之前,我基本上将“设置大小 0.38,1”设置得尽可能低。问题出在 y 轴的空白处,自从我删除它以来就不存在了。任何人都可以帮忙吗?
这是 gnuplot 的 eps 终端生成的边界框的常见问题。* 您可以采用多种方法。
set margin
您可以使用set [rltb]margin
命令在 gnuplot 中手动设置边距。例如,要将左边距设置为零,您可以添加
set lmargin 0
Run Code Online (Sandbox Code Playgroud)
到您的脚本。
假设您使用的是 *nix/Mac OS,您可以使用 eps2eps 实用程序将 eps“转换”为另一个 eps,这通常会在途中修复边界框。我创建了一个我调用的脚本fixbb
(不要与隐藏在 gnuplot 网站上的脚本混淆),它运行以下命令:
eps2eps $1 $1.bak && mv $1.bak $1
Run Code Online (Sandbox Code Playgroud)
这通常对我有用。
如果在您的图形中使用 LaTeX 格式并不重要,则可以使用pdf[cairo]
或png[cairo]
然后将这些图形包含在您的文档中。
您提到如果只有 gnuplot 会产生更小的边距,所有数字都可以放在一行上,但听起来您正在尝试调整 gnuplot 输出的大小,同时您还可以从 LaTeX 中修改内容。例如,要使数字变小,请width
在 中使用较小的参数\includegraphics
:
\includegraphics[width=0.2\textwidth]{myeps.eps}
Run Code Online (Sandbox Code Playgroud)
您还可以使用裁剪图像\includegraphics
。
*这里有两个问题:(i) gnuplot 默认情况下即使在没有轴/标签的图边上也倾向于提供大量的边距,并且 (ii) gnuplot 可以为 eps 制作不稳定的边界框这一事实使情况更加复杂文件。