#python #matplotlib #plot #seaborn
#python #matplotlib #график #seaborn
Вопрос:
Я пытаюсь создать distplot / kdeplot с оттенком в качестве цели для нескольких столбцов в моем наборе данных. Я делаю это, используя kdeplot с сеткой facetgrid и используя параметр ax, чтобы он отображался на моих рисунках plt.subplot. Однако я не могу изменить заголовок на отдельном графике. Я пробовал g.fig.suptitle и ax[0,0].set_title, но ни один из них не работает
df = sns.load_dataset('titanic')
fig, ax = plt.subplots(2,2,figsize=(10,5))
g = sns.FacetGrid(df, hue="survived")
g = g.map(sns.kdeplot, "age",ax=ax[0,0])
g.fig.suptitle('age')
h = g.map(sns.kdeplot, "fare",ax=ax[0,1])
h.fig.suptitle('fare')
ax[0,0].set_title ='age'
ax[1,0].set_xlabel='fare'
Я получаю это изображение. Похоже, это меняет график внизу, чего я не хочу
Кстати, мне не нужно использовать Seaborn, matplotlib тоже подойдет
Комментарии:
1. Какие переменные вы хотите отобразить на каждом подзаголовке?
Ответ №1:
Если вам нужны два графика плотности для age
и fare
, вы можете попробовать повернуть его в длину, а затем применить сетку FacetGrid:
import seaborn as sns
df = sns.load_dataset('titanic')
Итак, длинный формат выглядит так, он позволяет разделить variable
столбец:
df[['survived','age','fare']].melt(id_vars='survived')
survived variable value
0 0 age 22.00
1 1 age 38.00
2 1 age 26.00
3 1 age 35.00
4 0 age 35.00
И мы строим:
g = sns.FacetGrid(df[['survived','age','fare']].melt(id_vars='survived'),
col="variable",sharex=False,sharey=False,hue="survived")
g.map(sns.kdeplot,"value")
Комментарии:
1. Спасибо, я действительно наткнулся на этот ответ в другом сообщении SO, но, похоже, это лучший вариант