Julia中如何合并数量不固定的subplots(子图)?
解决方案
你之前的写法不生效是因为Plots库的plot函数拼接子图时,要求每个子图作为独立的位置参数传入,直接传入子图数组会被识别为单个绘图输入,不会被解析为多个子图。你只需要用Julia的splat运算符(...)将存储子图的数组展开为独立位置参数即可,写法如下:
完整示例代码
using Plots # 动态参数,可根据传入函数的取值调整 subplot_num = 4 # 动态生成子图并存入数组 plot_arr = [] for i in 1:subplot_num current_p = plot(rand(20), title="第$(i)张子图") push!(plot_arr, current_p) end # 合并子图,用...展开数组,layout参数按需设置行列数 # 示例为4行1列垂直排布 plot(plot_arr..., layout=(subplot_num, 1))
补充说明
- 如果不需要手动指定行列排布,直接传入
layout = length(plot_arr),Plots会自动适配最优的行列布局 - 如果需要自定义子图尺寸比例,可以配合
grid函数使用,比如3行1列、高度占比为1:2:3的写法:plot(plot_arr..., layout=grid(3,1, heights=[0.16, 0.33, 0.51]))
内容的提问来源于stack exchange,提问作者Chuong Nguyen
相关产品推荐
相关产品推荐

