Julia中行式堆叠子图如何设置y轴标签垂直居中对齐
Julia垂直堆叠子图y轴标签居中调整方法
使用Plots.jl搭配PyPlot后端绘制多行1列垂直堆叠子图时,若将y轴标签绑定在顶部子图上,标签默认会停靠在子图y轴顶部位置,可通过以下两种方式调整到y轴垂直居中位置。

方案1:全局y轴标签配置(推荐)
不要在单个子图中单独定义y轴标签,改为在组合子图的最终plot调用中设置全局y轴标签,通过参数直接指定标签垂直居中,自动适配整个堆叠绘图区域的高度:
pyplot(grid=:false, frame=:box) x = LinRange(-π, π, 1000) # 单个子图移除单独的ylabel配置 p1 = plot(x, 10*sin.(10*x), xticks=:false, yticks=:false) p2 = plot(x, exp.(x), xlabel=L"\theta", yticks=:false) # 组合图时统一配置y轴标签 plot( p1, p2, layout=(2, 1), link=:all, top_margin=-1mm, left_margin=5mm, # 预留足够的标签显示空间 ylabel="Intensity", # 核心参数:控制y轴标签垂直居中对齐 yguidefontvalign=:center )
方案2:手动调整单个子图标签偏移
如果需要保留在顶部子图上定义y轴标签的写法,可以通过偏移参数手动调整标签位置,适合自定义微调场景:
pyplot(grid=:false, frame=:box) x = LinRange(-π, π, 1000) p1 = plot( x, 10*sin.(10*x), xticks=:false, yticks=:false, ylabel="Intensity", yguideoffset=0, guidefontvalign=:center ) p2 = plot(x, exp.(x), xlabel=L"\theta", yticks=:false) plot!(p1, p2, layout=(2, 1), link=:all, top_margin=-1mm)
说明:不同绘图后端(GR、PyPlot、PlotlyJS)对标签位置参数的支持存在细微差异,如果切换后端后位置不对,可以调整
yguideoffset参数(单位为像素,正值向上偏移、负值向下偏移),直到标签落到居中位置即可。
内容的提问来源于stack exchange,提问作者usmaan0311
相关产品推荐
相关产品推荐

