matplotlib如何在子批次中循环通过每个ax

2024-04-28 14:02:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在所有不同的图形上想象10种不同的东西

figure, ((ax1, ax2), (ax3, ax4), (ax5, ax6), (ax7, ax8), (ax9, ax10)) = plt.subplots(nrows=2, ncols=5)
figure.set_size_inches(17,8)

for i, age_g in enumerate(age_cat):
    group = total_usage_df.loc[(total_usage_df.age_group == age_g) & (total_usage_df.day_of_week <= 4)]
    sns.distplot(group.rent_hour, ax=)

在最后一行中,我不知道如何从1到10循环所有ax

我希望传递[ax1、ax2等…]的列表,以便循环浏览它们:

lst = [ax1, ax2, ax3, ax4, ax5, ax6, ax7, ax8, ax9, ax10]
figure, (lst) = plt.subplots(nrows=2, ncols=5)
figure.set_size_inches(17,8)

for i, age_g in zip(lst, age_cat):
    group = total_usage_df.loc[(total_usage_df.age_group == age_g) & (total_usage_df.day_of_week <= 4)]
    sns.distplot(group.rent_hour, ax=i)

但它输出的是这样的内容:

NameError: name 'ax1' is not defined

如何在每个ax1~ax10之间循环


Tags: dfagegroupusageaxtotalfigurelst
1条回答
网友
1楼 · 发布于 2024-04-28 14:02:33

实际上,您应该使用ravelflatten

fig, axes = plt.subplots(nrows=2, ncols=5)

# loop through the axes, one by one
for ax, age in zip(axes.ravel(), age_cat):
    group = ...
    sns.displot(...)

相关问题 更多 >