0

我使用以下gnuplot脚本来绘制数据文件

reset
unset key
set size 1,1

set xrange [-10.1:11]
set yrange [-45:45]

set xlabel 'x'
set lmargin 6
set label 1 "~x{0.7.}" font "Helvetica, 20" at graph -0.1, graph 0.5

set xtics 2
set ytics 15

set mxtics 5
set mytics 5

plot "pss_data.dat" u 1:2 w dots lc rgb 'black'

set term postscript eps enhanced "Helvetica" 20 size 7in, 5in
set output 'plot.eps'
replot

reset
set terminal windows

quit

导出的 .eps 文件如下。

在此处输入图像描述

好吧,实际上这是使用 Adob​​e Acrobat XI 进行转换的相应 .pdf 文件。但是,.pdf 输出不仅包含绘图,还包含其上方所有不需要的黑色区域!为了摆脱白色区域,我使用了命令行

epstopdf plot.eps

输出如下

在此处输入图像描述

现在,白色区域已被删除,但 y 轴的标签也不见了!

有任何想法吗?我想在 .pdf 文件中只包含绘图(没有上面的白色区域),但标签位于 y 轴。

提前谢谢了。

4

2 回答 2

2

您的边界框可能设置不正确。您可以尝试在您创建的 eps 上使用epstool

epstool --bbox myeps.eps myneweps.eps

那应该正确计算边界框,但给你一个零边距。如果您不能/不想安装它,请尝试手动调整边界框。.eps 文件顶部附近有一行,如下所示:

%%BoundingBox: 50 50 554 770

这四个数字是输出的 y 偏移量、x 偏移量、y 最大值和 x 最大值(就边距而言,您可以将它们视为上、左、下、右)。您可以尝试减少第二个数字(增加左边距)以查看是否显示了您的 y 轴标签。

于 2013-02-04T14:24:25.380 回答
1

我会通过使用 gnuplot 的 pdf 终端之一(我喜欢pdfcairo)来避免转换,并且只使用ylabel而不是set label 1 ... at graph.... 这是一个简单的脚本,您可以根据自己的目的进行修改:

set term pdfcairo enhanced font "Helvetica,20"
set output "test.pdf"
set ylabel "~x{0.7.}" rotate by 0  #default rotation is 90
set xlabel "x"
plot sin(x)

最终,您的脚本所发生的事情是 gnuplot 将标签从可视画布上移开。由于某些原因,adobe 仍将标签放在(转换后的)输出上,但我会断言在这种情况下它们是错误的——(它们基本上忽略了您的边界框)。当然,您可以按照 andyras 的回答中的建议移动/调整边界框——但我认为这是一个非常老套的解决方案。

于 2013-02-04T16:27:30.397 回答