Как мне построить сетку фасетов Seaborn с результатом `groupby`?

#python #pandas #seaborn

#python #панды #seaborn

Вопрос:

У меня есть следующее pandas Dataframe :

              A  B              C
0   2017-01-01  1   4.199197e 06
1   2017-01-01  2   8.708300e 06
2   2017-01-01  3   5.401463e 06
  

результат операции groupby:

 tot_reg = (sales.groupby(['A', 'B'])[['C']]
           .sum()
           .reset_index())
  

Я хотел бы построить Seaborn sns.Facetgrid график A по оси x, C по оси y, для каждого B, который есть, у меня есть:

 sns.FacetGrid(tot_reg, col='B', col_wrap=4)
  

но, хотя он подсчитывает уникальные B и отображает правильное количество подзаголовков, графики пусты.

Как мне построить сетку фасетов Seaborn с результатом groupby ?

Ответ №1:

Вам нужно сопоставить команду plot с facetgrid:

 fg = sns.FacetGrid(df, col='B', col_wrap=4)
fg.map(sns.scatterplot, 'A','C')
  

Вывод:

введите описание изображения здесь

Комментарии:

1. Спасибо. Это правильно… но почему? Можете ли вы подробнее рассказать о логике?

2. Логика заключается в том, что вы используете FacetGrid для настройки подзаголовков, а затем используете команды plot, Чтобы указать, что вы хотите нарисовать (scatter, line, box и т. Д.). Я думаю, что это довольно просто и разумно.