Как сделать отдельные kdeplots Seaborn для всех разных столбцов из одного панды Dataframe?
Как я могу сделать два отдельных kdeplots Seaborn для всех столбцов кадра данных pandas:
- Pandas DataFrame (
df
) с шестью столбцами (например, ниже):
df.columns = ["A", "B", "C", "D", "E", "F"]
Я попробовал следующий код, но это не сработало. Любые советы по коду ниже?
df = sns.load_dataset("df")
g = sns.FacetGrid(df)
g.map(s.skdeplot, "df.columns");
2 ответа
Я думаю, что вам нужно использовать pd.melt
:
df = pd.DataFrame({'id1' :np.random.randint(3,size=1000),
'id2' :['ABC'[i] for i in np.random.randint(3,size=1000)],
'val1':np.random.normal(loc=1, size=1000),
'val2':np.random.normal(loc=2, size=1000),
'val3':np.random.normal(loc=3, size=1000)})
g = sns.FacetGrid(pd.melt(df,
id_vars=['id1','id2'],
value_vars=['val1','val2','val3']),
hue='id1',col='id2',row='variable')
g.map(sns.kdeplot,'value')
Ваша проблема здесь:
ax(i) = sns.kdeplot(dftouse[column], c = colorUp(dftouse[column]))
ax(i)
это вызов функции. Вы пытаетесь присвоить что-то этому. Это не правильно.
Я не знаком с matplotlib, просто Python. Возможно, вы имели в виду ax[i]
? Если ax это массив или dict, то это может быть правильно.