Как построить несколько столбцов рядом с графом Seaborn - PullRequest
0 голосов
/ 11 марта 2020

У меня есть Pandas DataFrame, например:

pd.DataFrame({
    "A": [165,166,920,920,920,165,162,162,166,165,755,469],
    "B": [1920,868,470,470,698,945,1670,575,701,1920,1920,470],
    "C": [1670,461,461,212,212,212,212,414,453,196,254,461]
})

Я хотел бы иметь seaborn countplot каждого option A, B and C с top 2 для каждого столбца, нанесенного рядом.

Ниже изображение чего-то похожего. Моя проблема в том, чтобы колонки соседствовали с легендой.

Something similar to this

Спасибо

1 Ответ

1 голос
/ 11 марта 2020

Можете ли вы попробовать это?

import pandas as pd
import seaborn as sns

df=pd.DataFrame({
"A": [165,166,920,920,920,165,162,162,166,165,755,469],
"B": [1920,868,470,470,698,945,1670,575,701,1920,1920,470],
"C": [1670,461,461,212,212,212,212,414,453,196,254,461]})


sns.set(style="darkgrid")
fig, ax =plt.subplots(3,1)
max_count = max([max(df[i].value_counts()) for i in df.columns])
A=sns.countplot(y=df['A'],ax=ax[0],order=df.A.value_counts().iloc[:2].index)
B=sns.countplot(y=df['B'],ax=ax[1],order=df.B.value_counts().iloc[:2].index)
C=sns.countplot(y=df['C'],ax=ax[2],order=df.C.value_counts().iloc[:2].index)
ax[0].set_xlim(0,max_count)
ax[1].set_xlim(0,max_count)
ax[2].set_xlim(0,max_count)
A.set(xticklabels=[])
B.set(xticklabels=[])

enter image description here

...