Gnuplot:在y轴上显示绝对值,在y2上显示百分比
我想绘制一个图,其中数据有两个y轴:一个显示绝对值,另一个显示与一个数据点的百分比差。如果37是100%,我想在左y轴上显示37,在右y轴上显示100。我该怎么做 要设置为100%的值是数据集中的最后一个值。我可以接受硬编码 我尝试了两次绘制数据,一次用于x1y1,一次用于x1y2。轴使用独立的自动缩放,绘图未对齐。我希望避免硬编码缩放 数据: 绘图脚本: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
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