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

3
我想制作一个图表,其中数据有两个y轴:一个显示绝对值,另一个显示相对于一个数据点的百分比差异。因此,如果37是100%,我希望在左侧y轴上显示37,在右侧y轴上显示100。我该如何做?
要设置为100%的值是我的数据集中的最后一个值。我可以硬编码它。
我尝试将数据绘制两次,一次用于x1y1,一次用于x1y2。轴使用独立的自动缩放,而且绘图没有对齐。我想避免硬编码缩放。
数据:
1 35.15
2 33.3
3 33.3
4 40.7
5 37

剧情脚本:

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

我想要的是红色

(此链接为图片,无法翻译)
1个回答

3
你可以滥用stats命令来获取你的数据文件的最后一个值。
stats "data.dat" using (ylast=$2) nooutput

你可以将两个y轴链接在一起。

set link y2 via y*100./ylast inverse y*ylast/100.

这似乎关闭了y轴范围通常超出数据最大/最小值的扩展,因此您可能需要使用set offset手动增加范围。

将所有这些组合在一起:

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

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接