您可能想要將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()
你會從熊貓直接獲得不seaborn類似的東西:
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()
你有樣本數據?我想你應該看看[FacetGrid](https://seaborn.pydata.org/generated/seaborn.FacetGrid.html)。 –
使用通常的'plt.subplots' meachnism可能也不錯,但是如果沒有對輸入數據和期望結果的全面解釋,這個問題可能不會被回答。 – ImportanceOfBeingErnest
輸入數據是一個數據框,可以說20個變量,其中15個是分類的,因此用類型對象對它們進行過濾。上面的for循環計算每個分類變量的圖表,但在單個列中。這適用於小型數據集,但具有20+分類變量的數據集非常繁瑣,無法向下滾動,我希望這些20+圖能夠排列在網格中,讓我們看到4列和5行。希望有助於更好地理解問題。 – mickeyt500