与 gnuplot 一致的图形大小

Consistent figure sizes with gnuplot

我正在尝试使用 gnuplot 制作将包含在乳胶文档中的图形。我希望所有图形都具有相同的尺寸和字体大小。为了实现它,我发现我应该提前指定图形的大小,我是这样做的:

set terminal postscript eps size 3.4004,2.104 enhanced color

但是,生成的 .eps 图形周围有很多白色space,所以我使用 fixbb 脚本删除所有不必要的 space。这也会改变图形的最终大小,只要它是一致的,这就不是问题。不过白色的数量space好像每个图都不一样,所以我最后的图都是大小不一的。 这似乎尤其是 3D 图的问题。

有没有办法在去除所有不必要的白色的同时使尺寸保持一致space?在 matplotlib 中,有一个 plt.tight_layout() 命令可以做到这一点。

如果通过固定图形大小,您可以参考绘制数据的矩形,您可以手动设置边距。我通常对我放在论文上的数字做的是使用具有所需大小和字体的 epslatex 终端,然后设置边距,然后编译为 pdf,然后进行裁剪以去除白色 space .例子

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,周围没有白色space。使用上面的不同修改,您可以非常精确地修改图表的大小。

最后,请注意 epslatex 终端还允许 standalone 选项以避免需要外部乳胶文档来包装您的图表。