将 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
我有一个 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