如何用patchworklib批量展示绘图列表(类R的grid.arrange)
可以实现,具体方案如下
patchworklib完全支持将批量生成的绘图存入列表后统一布局展示,核心是用Brick对象封装每个子图,再通过wrap_plots函数批量组合,效果和R的grid.arrange一致。
示例代码
import patchworklib as pw import numpy as np import matplotlib.pyplot as plt # 生成示例numpy矩阵(10行5列的随机数据) data = np.random.randn(10, 5) plot_list = [] # 遍历矩阵列生成子图,存入列表 for col in range(data.shape[1]): # 创建patchworklib的Brick容器(替代普通matplotlib figure) sub_fig = pw.Brick(figsize=(3, 2)) ax = sub_fig.add_subplot(111) ax.plot(data[:, col]) ax.set_title(f"数据系列 {col+1}") plot_list.append(sub_fig) # 批量组合所有子图,指定2列3行布局 combined_plot = pw.wrap_plots(plot_list, ncol=2, nrow=3) # 展示或保存 combined_plot.show() # combined_plot.savefig("批量绘图结果.png")
关键说明
- 必须用
pw.Brick()创建每个子图的容器,不能直接用普通的plt.figure(),否则无法被patchworklib识别组合 wrap_plots函数支持传入绘图列表,通过ncol/nrow控制布局,还可以用sharex/sharey参数统一坐标轴- 如果需要更灵活的布局(比如不同子图占比不同),也可以用
+操作符从列表中逐个拼接,再用layout()方法指定行列
内容的提问来源于stack exchange,提问作者therickster
相关产品推荐
相关产品推荐

