我使用以下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文件如下。
嗯,实际上这是使用Adobe Acrobat XI进行转换的相应.pdf文件。但是,.pdf输出不仅包含绘图,还包含其上方所有不需要的黑色区域!为了摆脱白色区域我使用了命令行
epstopdf plot.eps
输出如下
现在,白色区域已被删除,但y轴上的标签也丢失了!
有什么想法吗?我想在.pdf文件中只有图(没有上面的白色区域),但标签在y轴。
非常感谢提前。
答案 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的回答中的建议移动/调整边界框 - 但我认为这是一个非常糟糕的解决方案。