使用两个轴

时间:2017-03-01 23:44:43

标签: plot gnuplot yaxis

我想知道如何使用 gnuplot 为独立的yticsy轴设置相同数量的y2,仍在使用自动缩放,以便网格很好地对齐。

现在,正如您在下面看到的那样,6轴有y个刻度,7y2个刻度,图表看起来很难阅读。

y2 misalignment

1 个答案:

答案 0 :(得分:2)

据我所知,Gnuplot只允许你指定定义抽搐的增量而不是它们的数量。稍微肮脏的解决方法是首先将图形生成“假”终端,记住每个轴上检测到的自动缩放范围,计算所需的抽搐间距,最后使用这些设置生成图像。

N = 6

set term unknown

set ytics
set y2tics #setting y2tics affects autoscale
set ylabel 'MSE'
set y2label 'CE'
set grid

set format y "%.2f"
set format y2 "%.1f"

plot \
    'mse.dat' u 1:2 axis x1y1 w l t 'MSE', \
    'ce.dat' u 1:2 axis x1y2 w l t 'CE'

min_y1 = GPVAL_Y_MIN
max_y1 = GPVAL_Y_MAX

min_y2 = GPVAL_Y2_MIN
max_y2 = GPVAL_Y2_MAX

dy1 = (max_y1 - min_y1) / N
dy2 = (max_y2 - min_y2) / N

set ytics min_y1, dy1
set y2tics min_y2, dy2

set yr [min_y1:max_y1]
set y2r [min_y2:max_y2]

set term png enhanced
set output "test.png"

replot 

然后生成(使用数据的近似数据): enter image description here