使用gnuplot获得一致的图形尺寸

3

我试图使用gnuplot制作能够包含在latex文档中的图表。我希望所有的图表都具有相同的尺寸和字体大小。为了达到这个目的,我发现应该事先指定图表的尺寸,我会按照如下方式进行设置:

set terminal postscript eps size 3.4004,2.104 enhanced color

然而,生成的.eps图像周围有很多空白,因此我使用fixbb脚本来删除所有不必要的空间。这也会改变图像的最终大小,只要保持一致就不会有问题。然而,空白的数量似乎因图像而异,因此我的最终图像大小都不同。这在3D图中尤为突出。
有没有办法在删除所有不必要的空格的同时使大小保持一致?在matplotlib中,有一个plt.tight_layout()命令可以做到这一点。

不,gnuplot中没有相应的命令。您需要使用set size手动缩放图形并使用set origin移动其原点。 - Christoph
1个回答

1
如果您说的是指数据绘制的矩形区域大小,您可以手动设置边距来固定图形的大小。 我通常在我的论文中使用epslatex终端进行所需大小和字体的图形设置, 然后设置边距, 最后编译为pdf并裁剪以去除空白区域。 例如
set term epslatex color size 3.5,2.5 font 6
set output "gnuplot.eps"

set lmargin at screen 0.2
set rmargin at screen 0.98
set tmargin at screen 0.98
set bmargin at screen 0.1

plot sin(x) title '$\sin (x)$'

我将以下内容嵌入到一个 .tex 文件中(我称之为 plot.tex):

\documentclass{article}

\usepackage[papersize={100cm,100cm}]{geometry}

\usepackage{graphicx}
\usepackage{color}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage[mathcal]{euscript}

\begin{document}

\thispagestyle{empty}

\include{gnuplot}

\end{document}

并运行以下代码:
pdflatex plot.tex
pdfcrop plot.pdf

你将会得到一个没有白色空间的plot-crop.pdf文件。通过对上述修改的不同变种,你可以非常精确地修改图形的大小。

enter image description here

最后,注意 epslatex 终端还允许使用 standalone 选项,以避免需要外部 LaTeX 文档来包装您的图形。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接