Gnuplot 是否可以在multiplot中使用GPVAL_Y_MIN和GPVAL_Y_MAX?

Gnuplot 是否可以在multiplot中使用GPVAL_Y_MIN和GPVAL_Y_MAX?,gnuplot,Gnuplot,我正在一个多点图中绘制六个不同的图形。我想自动缩放轴。打印的值是从txt文件读取的,每次执行时这些文件都不同,所以我无法修复xrange和yrange中的任何值。这就是为什么我需要自动缩放轴 问题是multiplot不允许改变术语,所以我不能在虚拟终端中绘图,我不知道GPVAL_Y_MIN和GPVAL_Y_MAX的值 有什么想法吗?如果multiplot中的图形没有正确的比例,则显示我的数据不是很有用。您可以使用 set autoscale yfix 具有自动缩放的y范围,但不将其扩展到下一个

我正在一个多点图中绘制六个不同的图形。我想自动缩放轴。打印的值是从txt文件读取的,每次执行时这些文件都不同,所以我无法修复xrange和yrange中的任何值。这就是为什么我需要自动缩放轴

问题是multiplot不允许改变术语,所以我不能在虚拟终端中绘图,我不知道GPVAL_Y_MIN和GPVAL_Y_MAX的值

有什么想法吗?如果multiplot中的图形没有正确的比例,则显示我的数据不是很有用。

您可以使用

set autoscale yfix
具有自动缩放的y范围,但不将其扩展到下一个区域。这将为每个子批次提供不同的范围

如果所有子批次都需要一个yrange,可以使用
stats
命令(需要4.6版)。在打印到虚拟终端后使用
GPVAL\u Y*
是4.6之前的gnuplot版本的解决方法(更多的是一种变通方法)

然后,您可以迭代所有文件以确定公共Y范围:

filelist="A.txt B.txt C.txt D.txt E.txt F.txt"
i = 0
do for [f in filelist] {
    stats f using 1:2 nooutput
    if (i == 0) { 
        min_y = STATS_min_y
        max_y = STATS_max_y
        i = 1
    } else {
        min_y = (STATS_min_y < min_y ? STATS_min_y : min_y)
        max_y = (STATS_max_y > max_y ? STATS_max_y : max_y)
    }
}
set yrange [min_y:max_y]
set multiplot 
...
filelist=“A.txt B.txt C.txt D.txt E.txt F.txt”
i=0
文件列表中[f]的do{
使用1:2输出的统计f
如果(i==0){
最小值=统计值最小值
最大值=统计值最大值
i=1
}否则{
最小值=(统计最小值<最小值?统计最小值:最小值)
max_y=(STATS_max_y>max_y?STATS_max_y:max_y)
}
}
设置y范围[最小值:最大值]
集多点
...

首先,谢谢。我想这是个好主意,但如果两个图在y值上有很大的差异,会发生什么呢?例如,0015和3500位于另一个位置。如果其中一个绘图使用较小的值,而另一个绘图使用更大的值,则可能会出现问题。我不知道你是否明白我的意思,是吗?(取决于情节,值是mmm,Hz,J,N,kg…)我不明白,你在问题中的确切意思,所以我发布了两种情况,我可以用
GPVAL.*
想象出有意义的情况。当然,如果你绘制不同的数量,那么有一个共同的Y范围是没有意义的!那么:你到底想要实现什么?为什么自动缩放和可能使用的
设置自动缩放yfix
不起作用?好的,自动缩放改善了绘图,谢谢。我手动设置了所有图的大小,其中一个比其他图小。我原以为可以用自动缩放(x和y)解决问题,但没有。谢谢,你解决了我的问题,但现在我有了其他的哈哈。这是我的multiplot失败的部分:()我不能使用multiplot布局,因为我需要在标题旁边添加两个徽标。所以我分别设置了绘图的位置和大小,但我不明白为什么这些看起来是错误的。可能是因为价值观?