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

时间:2018-06-06 09:13:38

标签: gnuplot

我想制作一个数据有两个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

What I want in red

1 个答案:

答案 0 :(得分:2)

您可以(ab)使用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