GNUPLOT:如何在保持宽高比正确的同时自动调整纸张尺寸?

时间:2013-05-20 20:55:19

标签: c++ gnuplot

我正在使用C ++来传输Gnuplot脚本。但我觉得处理纵横比和纸张尺寸非常烦人。有没有人有一个好的方法:

(1)保持宽高比正确,长度1为1,曲线2为2。我发现纵横比取决于纸张尺寸!!!

(2)零边距纸张,纸张尺寸将自动缩放。我发现eps数字总是有很大的优势。

set terminal postscript eps enhanced color font 'Helvetica,2000' size 640,480
set output 'grid.eps'
set size 1, 1
set hidden3d
unset key
unset tics
unset border
set view 0,0,1,1
set xrange [0:3]
set yrange [0:6]
set zrange [0:1]
set title 'grid test'
splot 'grid.dat' using 1:2:3 with lines lt 2 lc rgb '#100000'

grid.dat档案:

0 0 0
1 0 0
2 0 0
3 0 0

0 2 0
1 2 0
2 2 0
3 2 0

0 4 0
1 4 0
2 4 0
3 4 0

0 6 0
1 6 0
2 6 0
3 6 0

通过说纵横比正确,我的意思是我希望情节看起来像一个2:1的矩形网格,而不是像方形或其他任何东西。我不希望这个数字被拉伸。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您需要设置绘图的宽高比。要做到这一点,你想使用类似的东西:

set size ratio ASPECT_RATIO

这将使得y轴的长度除以x轴的长度(以图形为单位)为ASPECT_RATIO。如果您希望以图表单位确定比率,那么您将使用ASPECT_RATIO的负数。

答案 1 :(得分:1)

这是诀窍,假设我们有以下通用脚本:

set terminal postscript eps enhanced color font 'Helvetica,20' size Lx,Ly
set xrange [XMIN:XMAX]
set yrange [YMIN:YMAX]

首先,将XMIN和XMAX以及YMIN和YMAX设置为图的最小值和最大值。

然后,设置Lx,比如说Lx = 100,然后将Ly设置为floor(100*(YMAX-YMIN)/(XMAX-XMIN)))

在此之后,可以使用一些shell脚本来删除边距。