将 gnuplot yrange 设置为仅适合一条曲线

Setting gnuplot yrange to fit one curve only

我有一个 Gnuplot 脚本,可以从数据文件中绘制 2 条曲线。如果我不指定 yrange,Gnuplot 会设置它,使两条曲线的所有点都适合图中。在我的例子中,我希望 Gnuplot 只关心其中一条曲线(如果另一条曲线超出范围并不重要,因为我只对图中第二条曲线接近第一条曲线的部分感兴趣).

我可以找出第一条曲线的最小值和最大值,并手动将 yrange 设置为这些值,但我的 Gnuplot 脚本旨在 运行 在许多数据文件上自动生成许多数字which yrange 不一样,所以我正在寻找一种自动执行此操作的方法。

谢谢

有不同的选项,具体取决于使用的 gnuplot 版本:

版本 5.0:

应该从自动缩放中排除的数据文件得到一个noautoscale参数:

plot 'first.dat' using 1:2, 'second.dat' using 1:2 noautoscale

版本 >= 4.6:

使用stats命令获取相关数据文件的最小值和最大值:

stats 'first.dat' using 1:2
set yrange [STATS_min_y:STATS_max_y]
plot 'first.dat' using 1:2, 'second.dat' using 1:2

至少从 4.0 开始:

使用 set yrange [] writeback 保存绘图命令的自动缩放范围,并 set yrange restore 将它们用于以后的绘图:

set terminal push
set terminal unknown

set yrange [] writeback
plot 'first.dat' using 1:2

set yrange restore
set terminal pop
plot 'first.dat' using 1:2, 'second.dat' using 1:2