Gnuplot:在y轴上显示绝对值,在y2上显示百分比

Gnuplot:在y轴上显示绝对值,在y2上显示百分比,gnuplot,Gnuplot,我想绘制一个图,其中数据有两个y轴:一个显示绝对值,另一个显示与一个数据点的百分比差。如果37是100%,我想在左y轴上显示37,在右y轴上显示100。我该怎么做 要设置为100%的值是数据集中的最后一个值。我可以接受硬编码 我尝试了两次绘制数据,一次用于x1y1,一次用于x1y2。轴使用独立的自动缩放,绘图未对齐。我希望避免硬编码缩放 数据: 绘图脚本: plot 'data.dat' using 1:2 with lines 您可以(ab)使用stats命令获取数据文件的最后一个值 sta

我想绘制一个图,其中数据有两个y轴:一个显示绝对值,另一个显示与一个数据点的百分比差。如果37是100%,我想在左y轴上显示37,在右y轴上显示100。我该怎么做

要设置为100%的值是数据集中的最后一个值。我可以接受硬编码

我尝试了两次绘制数据,一次用于x1y1,一次用于x1y2。轴使用独立的自动缩放,绘图未对齐。我希望避免硬编码缩放

数据:

绘图脚本:

plot 'data.dat' using 1:2 with lines

您可以(ab)使用
stats
命令获取数据文件的最后一个值

stats "data.dat" using (ylast=$2) nooutput
然后你可以把两个y轴连接在一起

set link y2 via y*100./ylast inverse y*ylast/100.
这似乎关闭了y轴范围超出数据最大/最小值的常规扩展,因此您可能希望使用
设置偏移量
手动增加范围

综上所述:

stats "data.dat" using (ylast=$2) nooutput    
set link y2 via y*100./ylast inverse y*ylast/100.   
set offset 0,0,1,1
set ytics nomirror
set y2tics 5
set format y2 "%g%%"    
plot "data.dat" w lp

stats "data.dat" using (ylast=$2) nooutput    
set link y2 via y*100./ylast inverse y*ylast/100.   
set offset 0,0,1,1
set ytics nomirror
set y2tics 5
set format y2 "%g%%"    
plot "data.dat" w lp