gpt4 book ai didi

gnuplot - gnuplot:范围内的最大值和最小值

转载 作者:行者123 更新时间:2023-12-03 14:04:58 28 4
gpt4 key购买 nike

我正在绘制一些具有不同X范围的数据,我想根据当前X范围内数据的最大值和最小值更改yrange。当我使用GPVAL_Y_MAX和GPVAL_Y_MIN时,这些值对应于整个数据的最大值和最小值,而不仅仅是范围内的数据。

例如,我有以下数据:

1 3
2 5
3 8
4 20
5 30


我使用以下脚本:

plot 'data.txt' u 1:2;
set xrange [1:3];
replot
set xrange [1:5];
replot


在第一个情节中,我想在[3:8]中设置yrange,但是在第二个情节中,yrange应该设为[3:30]。如果我使用类似

set yrange [GPVAL_Y_MIN:GPVAL_Y_MAX]


GPVAL_Y_MIN和GPVAL_Y_MAX具有相同的值,而与xrange无关。

有什么办法吗?

最佳答案

您想要的变量是GPVAL_DATA_Y_MINGPVAL_DATA_Y_MAX,它们是在特定范围内绘制的数据的y-min / max。 GPVAL_Y_MINGPVAL_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'


请再次注意使用范围说明符,这次指定了y范围。这比用 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]。

关于gnuplot - gnuplot:范围内的最大值和最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13580236/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com