将eps转换为pdf时缺少标签

时间:2013-02-04 11:01:45

标签: plot export pdf-generation gnuplot eps

我使用以下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文件如下。

enter image description here

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

epstopdf plot.eps

输出如下

enter image description here

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

有什么想法吗?我想在.pdf文件中只有图(没有上面的白色区域),但标签在y轴。

非常感谢提前。

2 个答案:

答案 0 :(得分:2)

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

epstool --bbox myeps.eps myneweps.eps

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

%%BoundingBox: 50 50 554 770

四个数字是输出的y偏移,x偏移,y max和x max(就边距而言,您可以将它们视为顶部,左侧,底部,右侧)。您可以尝试减小第二个数字(增加左边距)以查看是否显示y轴标签。

答案 1 :(得分: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的回答中的建议移动/调整边界框 - 但我认为这是一个非常糟糕的解决方案。