如何在循环迭代时为每个子图绘制不同DataFrame的数据
解决方案
你可以按以下步骤修改代码,核心是先把7组待绘制的数据存入列表,再用计数器匹配每个可用子图对应的数据:
修改后的完整代码
import matplotlib.pyplot as plt import pandas as pd # 已导入过可省略该行 # 按顺序存储7组待绘制的数据集 plot_datas = [df1.col1, df2.col1, df3.col1, df4.col1, df5.col1, df6.col1, df7.col1] data_idx = 0 # 数据集索引计数器 fig, axes = plt.subplots(figsize=(10, 10), ncols=2, nrows=4) for i in range(4): for j in range(2): if i<j: axes[i, j].axis('off') else: axes[i, j].hist(plot_datas[data_idx], bins=20, edgecolor='k') data_idx += 1 # 绘制完成后计数器递增,匹配下一组数据
核心修改点说明
- 新增
plot_datas列表,按你需要的展示顺序存放7组待绘制的列数据 - 新增
data_idx计数器,每次进入可绘图的子图区域时,读取对应索引的数据集 - 把原来固定的
df1.col1替换为动态读取的plot_datas[data_idx]即可
内容的提问来源于stack exchange,提问作者vgb_backup
相关产品推荐
相关产品推荐

