我使用以下配置文件生成映射的3D绘图(XRANGE
和YRANGE
稍后设置)
#!/usr/bin/gnuplot
reset
set term postscript eps enhanced
set size square
set xlabel "X position"
set ylabel "Y position"
#Have a gradient of colors from blue (low) to red (high)
set pm3d map
set palette rgbformulae 22,13,-31
set xrange [0 : XRANGE]
set yrange [0 : YRANGE]
set style line 1 lw 1
unset key
set dgrid3d 45,45
set hidden3d
splot "data.data" u 1:2:3
生成的图像看起来像这样
注意:我已转换为jpg
因此质量较低,并且我在图像周围放置了边框。
上下都浪费了大量的空间。在我将图像嵌入到LaTex文档之前,这不是问题,此时它将如此(再次,pdf
文档转换为jpg
图像)
右边的图像也是用GnuPlot创建的,但它略大一些(通过查看我在前两幅图像周围绘制的边框可以看出)。原因是因为GnuPlot用顶部和底部空白区域填充3D图。如何在不必手动编辑我拥有的所有50多个图的情况下删除它?
答案 0 :(得分:4)
这有两个解决方案,一个是不可靠的,另一个是黑客攻击。
使用GnuPlot,margin settings可用于指定距相应边距的距离。例如,设置lmargin 0
和bmargin 0
实际上会将轴推离页面。可以为tmargin
和rmargin
分配类似的值以展开图表。虽然这适用于2D图形,但它不适用于3D图形(我怀疑这与我将图形设置为正方形的事实有关。)
当图表设置为方形大小时,Gnuplot still calculates for the entire screen。可以通过查找像%%BoundingBox: 50 50 410 302
这样的行并将410
更改为更小的行来直接操作eps文件来改变它。或者,这就是我所做的,你可以运行eps2eps in.eps out.eps
并为你裁剪它。只需确保in.eps
不与out.eps
相同的文件,否则无效。
答案 1 :(得分:2)
之后我也裁剪了Bounding Box,因为我讨厌在gnuplot中玩边缘。我意识到,不知何故,eps2eps确实调整了边界框,但它也将文本(标签等)转换为像素图形?!
我通常使用“epstool”在裁剪bb时将文本保存为文本,我使用的命令是:
epstool --copy --bbox in.eps out.eps
答案 2 :(得分:1)
使用<scale>
中的set view
参数,这会在不改变文字大小或标题位置的情况下放大图表。
在您的情况下,因为您使用map
视图,所以您需要:
set view 180,0,1.5
其中180,0
相当于map
视图,1.5
是缩放系数。