如何解决multiplot中子图尺寸不一致问题并设置不含轴的绘图尺寸?
解决gnuplot多子图X轴对齐问题
方法1:固定全局左右边距
通过基于屏幕百分比的边距设置,让所有子图的绘图区域左右边界完全一致,不受Y轴标签宽度影响:
# 先固定左右边距为屏幕百分比 set lmargin at screen 0.15 set rmargin at screen 0.9 # 开启多子图布局(示例为3行1列) set multiplot layout 3,1 # 绘制各子图 plot "data1.dat" plot "data2.dat" plot "data3.dat" unset multiplot
方法2:手动指定子图位置与尺寸
如果需要更精准的控制,直接定义每个子图的水平起始位置和宽度,确保所有子图的绘图区域参数统一:
set multiplot # 第一个子图:顶部区域 set origin 0.15, 0.7 # 水平起始于屏幕15%位置,垂直起始于70%位置 set size 0.7, 0.25 # 宽度占屏幕70%,高度占25% plot "data1.dat" # 第二个子图:中间区域,水平参数与第一个完全一致 set origin 0.15, 0.4 set size 0.7, 0.25 plot "data2.dat" # 第三个子图:底部区域 set origin 0.15, 0.1 set size 0.7, 0.25 plot "data3.dat" unset multiplot
注意事项
- 避免使用基于字符数的
set lmargin(如set lmargin 10),这类设置会随Y轴标签长度变化;必须用at screen的百分比方式固定位置。 - 若多子图共用X轴,可在底部子图保留X轴,其他子图用
unset xtics和unset xlabel隐藏,优化视觉效果。
内容的提问来源于stack exchange,提问作者Marilena
相关产品推荐
相关产品推荐

