gpt4 book ai didi

python - 使用 Seaborn 安排多个 for 循环分类图

转载 作者:太空宇宙 更新时间:2023-11-04 08:39:42 24 4
gpt4 key购买 nike

我正在使用 for 循环为数据框 df 创建多个分类图:

object_bol = df.dtypes == 'object'
for catplot in df.dtypes[object_bol].index:
sns.countplot(y=catplot,data=df)

plt.show()

输出是一个接一个排列的所有图,我如何将其分配给具有 n 列和 m 行的网格(n 和 m 因数据框中的对象数量而异)?

最佳答案

您可能希望扩展 How do I plot two countplot graphs side by side in seaborn? 中的示例到更多子图。

import numpy as np
import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

df=pd.DataFrame(np.random.choice(list("abcd"), size=(100,20), p=[.4,.3,.2,.1]))

fig, axes =plt.subplots(5,4, figsize=(10,10), sharex=True)
axes = axes.flatten()
object_bol = df.dtypes == 'object'
for ax, catplot in zip(axes, df.dtypes[object_bol].index):
sns.countplot(y=catplot, data=df, ax=ax, order=np.unique(df.values))

plt.tight_layout()
plt.show()

enter image description here

如果没有 seaborn,你会直接从 pandas 得到类似的东西:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

df=pd.DataFrame(np.random.choice(list("abcd"), size=(100,20), p=[.4,.3,.2,.1]))

df.apply(pd.value_counts).plot(kind="barh", subplots=True, layout=(4,5), legend=False)

plt.tight_layout()
plt.show()

enter image description here

关于python - 使用 Seaborn 安排多个 for 循环分类图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45765735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com