如何用Layout创建共享绘图区域边界的Julia并排图
共享Y轴的并排紧密绘图方案(Julia Plots)
需求说明
需要绘制两组共享Y轴的数据集,实现:
- 两图并排紧密衔接,无中间空白
- 左侧图保留Y轴标签、刻度标签及外间距
- 右侧图保留Y轴刻度线(指向左侧绘图区域),但隐藏刻度标签
- 绘图区域严格对齐
解决代码
using Plots x = 1:10 y1 = rand(10) y2 = rand(10) # 左侧图:保留Y轴标签,右侧边距设为0以消除中间空隙 plot1 = plot(x, y1, label="Plot 1", ylabel="Shared Y-Axis", framestyle=:box, right_margin=0mm, ylims=(0,1)) # 右侧图:保留Y轴刻度线但隐藏标签,左侧边距设为0,匹配左图Y轴范围 plot2 = plot(x, y2, label="Plot 2", yticks=(collect(0:0.2:1), []), # 刻度线保留,标签设为空数组 framestyle=:box, left_margin=0mm, ylims=(0,1), yguide="") # 清空Y轴标签避免占位 # 布局并排,全局保留左侧和底部外间距,确保左图Y轴标签不被截断 l = @layout [a b] plot(plot1, plot2, layout=l, left_margin=5mm, bottom_margin=5mm, right_margin=0mm)
关键调整点
- 统一两个图的
ylims参数,确保Y轴范围完全对齐,刻度线位置一致 - 右侧图通过
yticks=(刻度值数组, [])的写法,实现保留刻度线、隐藏标签的效果 - 分别设置左图
right_margin=0mm和右图left_margin=0mm,彻底消除两图中间的空白 - 全局设置
left_margin和bottom_margin保留外间距,避免左图Y轴标签和底部内容被截断
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

