Как сделать отдельные 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, то это может быть правильно.

Другие вопросы по тегам