GNUplot绘制堆叠多图时顶部子图无法完美对齐问题求助
GNUplot堆叠子图对齐异常解决方案
问题原因
- 混用
set multiplot layout自动布局规则和手动指定margin的配置,二者逻辑冲突导致顶部子图位置计算异常 - 全局设置的
set size ratio 0.5和手动计算的子图高度参数不匹配,gnuplot自动调整边距适配固定宽高比时破坏了对齐规则
修复方案
完全放弃自动layout规则,仅通过手动margin控制子图位置,同时固定全局边距不允许自动调整,修改后的脚本如下:
TMARGIN = 0.05 BMARGIN = 0.15 LMARGIN = 0.15 RMARGIN = 0.0 TCOORD=1-TMARGIN DY = 0.2 # 关闭自动边距调整 set fixed margins unset key unset title unset xtics unset ytics # 固定全局左右边距 set lmargin at screen LMARGIN set rmargin at screen RMARGIN # 开启多图模式,不要加layout参数 set multiplot # Plot 0 set tmargin at screen TCOORD set bmargin at screen TCOORD-DY set size ratio 0.5 plot sin(x) # Plot 1 set tmargin at screen TCOORD-DY set bmargin at screen TCOORD-(2*DY) set size ratio 0.5 plot sin(x) # Plot 2 set tmargin at screen TCOORD-(2*DY) set bmargin at screen TCOORD-(3*DY) set size ratio 0.5 plot sin(x) # Plot 3 set tmargin at screen TCOORD-(3*DY) set bmargin at screen BMARGIN set xlabel "xlabel" set xtics nomirror set size ratio 0.5 plot sin(x) unset multiplot
额外说明
如果需要所有子图的y轴范围统一,可以在全局添加set yrange [-1:1]避免数据范围不同导致的视觉偏移。
内容的提问来源于stack exchange,提问作者millow
相关产品推荐
相关产品推荐

