Gnuplot多点y轴缩放

Gnuplot多点y轴缩放,gnuplot,Gnuplot,我希望能够使用multiplot覆盖一些图形。我想启用自动缩放以获得最大分辨率,但我发现每个数据集都是独立缩放的。有人知道我如何能够将所有的图形按相同的比例缩放,使它们彼此相对都是正确的吗 我的数据是通过外部系统的管道提供的,但这里有一个简单的例子。如果我绘制这两个信号,我希望绘制比例为+/-2.0(从cos开始),然后适当缩放sin,使其仅为cos高度的一半,而不是两个高度相同 set multiplot plot sin(x) with lines ls 1 linecolor rgb "b

我希望能够使用multiplot覆盖一些图形。我想启用自动缩放以获得最大分辨率,但我发现每个数据集都是独立缩放的。有人知道我如何能够将所有的图形按相同的比例缩放,使它们彼此相对都是正确的吗

我的数据是通过外部系统的管道提供的,但这里有一个简单的例子。如果我绘制这两个信号,我希望绘制比例为+/-2.0(从cos开始),然后适当缩放sin,使其仅为cos高度的一半,而不是两个高度相同

set multiplot
plot sin(x) with lines ls 1 linecolor rgb "blue"
plot 2*cos(x) with lines ls 1 linecolor rgb "red"
unset multiplot

否,在多点打印中,无法根据当前打印的数据自动重新缩放上一个打印。先前绘图的数据不可用于以后的操作(缩放、重绘、重缩放等)。运行最小脚本并尝试放大;您将只获得缩放的最后一个绘图

可以对每个数据集运行
stats
命令来确定最大范围

max(x, y) = (x > y ? x : y)
min(x, y) = (x < y ? x : y)
do for [i=1:6] {
    stats '-' using 1 nooutput
    if (i == 1) {
        ymin = STATS_min
        ymax = sTATS_max
    } else {
        ymin = min(STATS_min, ymin)
        ymax = max(STATS_max, ymax)
    }
}
set yrange[ymin:ymax]
max(x,y)=(x>y?x:y)
最小值(x,y)=(x

但是,由于您正在管道化数据,因此需要发送所有数据集两次。或者,您必须确定应用程序中的最大范围,并向gnuplot发送
set xrange[…]
命令。

Hi Christoph,非常感谢您一如既往的评论。我相信你是对的,但这并不是一个标准特性,就像其他绘图软件包一样,这似乎是一个很大的遗憾。仅供参考,我不是在敲Gnuplot,因为它仍然是迄今为止最好的:-)。现在,我将预缩放所有数据。祝你一切顺利,约翰