0

我正在使用 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 的矩形网格,而不是正方形或其他任何东西。我不希望这个数字以某种方式被拉伸。

4

2 回答 2

1

如果我理解正确,您想设置情节的纵横比。为此,您需要使用以下内容:

set size ratio ASPECT_RATIO

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

于 2013-05-20T21:15:48.823 回答
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 脚本来去除边距。

于 2013-05-22T21:38:42.780 回答