在 gnuplot multiplot 中对齐 ylabel

Align ylabel in gnuplot multiplot

有没有办法垂直对齐 gnuplotmultiplot 中的 y 标签,使它们彼此下方?有问题的示例如下(红线是显示问题的注释):

set xrange[0:10]
set multiplot layout 2,1 margins 0.1,0.95,0.1,0.95 spacing 0,0
set ylabel "y1\nlabel"
set ytics
set format y "%.2f"
plot -1000*cos(x)**2 w l lt 4 lw 2
set ylabel "y2\nlabel"
set format y "%.1f"
plot cos(x) w l lt 5 lw 2
unset multiplot

生成:

而且我想自动定位标签,使红色注释行“触及相同的文本”。请注意,我真的对自动方式或更正确的方式感兴趣,即使用 set ylabel "lable" offset -x,0

进行反复试验的变通方法

正如您已经注意到的,您可以设置 x- 或 y-label 的偏移量(检查 help xlabel),但是,没有绝对位置。 您可以通过设置自己的标签来做到这一点。可以设置相对于图形的相对于屏幕的位置and/or。 gnuplot 为第二个绘图保留这些值,无需再次指定。检查 help label.

检查以下示例:

代码:

### align ylabels in multiplot
reset session

set xrange[0:10]

set multiplot layout 2,1 margins 0.15,0.95,0.1,0.95 spacing 0,0
    
    set format x ""
    unset ylabel
    set label 1 "y1\nlabel" at screen 0.02, graph 0.5 center rotate by 90
    set ytics 200
    set ytics add ("" -1000)   # remove -1000
    set format y "%.2f"
    set grid x,y
    plot -1000*cos(x)**2 w l lt 4 lw 2
    
    set format x
    set label 1 "y2\nlabel"
    set ytics 0.4
    set format y "%.1f"
    plot cos(x) w l lt 5 lw 2

unset multiplot
### end of code

结果: