您想要的变量是GPVAL_DATA_Y_MIN
和GPVAL_DATA_Y_MAX
,它们是在一定范围内绘制的数据的 y-min/max。 GPVAL_Y_MIN
并且GPVAL_Y_MAX
通常不太有用,因为它们会告诉您绘图边界的边缘在哪里(通常这些值会稍微超出GPVAL_DATA...
变量,因为 gnuplot 在数据和绘图边缘之间留下了一点空间)。
要利用这些变量,您必须在 plot 命令中使用范围说明符:
plot [1:3] 'data.txt'
set yr [GPVAL_DATA_Y_MIN:GPVAL_DATA_Y_MAX]
replot
...
顺便说一句,u 1:2
除非您想提醒自己要绘制哪些列,否则规范是多余的,因为将前两列绘制为 x 和 y 是 gnuplot 的默认值。如果您不想重新绘制到相同的输出终端(这在某些终端(如 eps)中没有帮助,其中重新绘制会生成具有相同绘图的第二页),请使用以下命令序列:
set terminal unknown
plot [1:3] 'data.txt'
set terminal <actual output terminal here>
set output 'output.trm'
plot [1:3][GPVAL_DATA_Y_MIN:GPVAL_DATA_Y_MAX] 'data.txt'
请注意再次使用范围说明符,这次指定了范围。这比使用指定要紧凑一些set yrange
,但会产生更长的代码行。
如果您有 gnuplot 4.6.0 或更高版本,则可以利用该stats
命令来避免重新绘制。该stats
命令创建了一堆方便的变量
stats [1:3] 'data.txt'
plot [1:3][stats_min_y:stats_max_y] 'data.txt'
稍有不同的命令,
stats [1:3] 'data.txt'
plot [stats_min_x:stats_max_x][stats_min_y:stats_max_y] 'data.txt'
将根据实际数据所在的位置在 x 方向上填充绘图。例如,如果您在 {(1.1, 3), (2, 4), (2.9,5)} 有数据点,则 x 范围将设置为 [1.1:2.9]。