如何在GnuPlot中绘制更大的图

时间:2012-01-08 01:32:12

标签: gnuplot

我使用以下配置文件生成映射的3D绘图(XRANGEYRANGE稍后设置)

#!/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

生成的图像看起来像这样

GnuPlot Image

注意:我已转换为jpg因此质量较低,并且我在图像周围放置了边框。

上下都浪费了大量的空间。在我将图像嵌入到LaTex文档之前,这不是问题,此时它将如此(再次,pdf文档转换为jpg图像)

enter image description here

右边的图像也是用GnuPlot创建的,但它略大一些(通过查看我在前两幅图像周围绘制的边框可以看出)。原因是因为GnuPlot用顶部和底部空白区域填充3D图。如何在不必手动编辑我拥有的所有50多个图的情况下删除它?

3 个答案:

答案 0 :(得分:4)

这有两个解决方案,一个是不可靠的,另一个是黑客攻击。

  1. 使用GnuPlot,margin settings可用于指定距相应边距的距离。例如,设置lmargin 0bmargin 0实际上会将轴推离页面。可以为tmarginrmargin分配类似的值以展开图表。虽然这适用于2D图形,但它不适用于3D图形(我怀疑这与我将图形设置为正方形的事实有关。)

  2. 当图表设置为方形大小时,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是缩放系数。