Matplotlib: уменьшить линейный график до определенных полов

#python #pandas #matplotlib #seaborn

#python #панды #matplotlib #seaborn

Вопрос:

У меня есть фрейм данных с 3 столбцами: 'values' , 'date' , 'gender' . У меня есть некоторый код, который создает линейный график из двух столбцов.

Код

 f = plt.figure(figsize=(14,6))

plt.plot(twelve_week_program.groupby(['date'])['values'].mean(), linewidth=5)
  

График

Я хочу включить 'gender' столбец, построив две разные строки: одну для мужчин и одну для женщин. Код на данный момент не учитывает пол. Он просто отображает каждую из строк.

Идеальный результат

Тот же график, только с двумя линейными графиками — по одному для каждого пола.

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

1. Чтобы добавить еще одну строку, просто напишите новую строку кода plt.plot(....) под вашей первой plt.plot(twelve_week_program...)

Ответ №1:

Я бы установил индекс фрейма данных в качестве столбца ‘date’, затем использовал:

 plt.plot(twelve_week_program.values[twelve_week_program.gender=='F']), linewidth=5)
plt.plot(twelve_week_program.values[twelve_week_program.gender=='M']), linewidth=5)
plt.show()
  

Предоставление ‘F’ и ‘M’ — это то, как вы представили столбец

Ответ №2:

Мой ответ:

 plt.plot(df.groupby(
[df['date'], 'gender'])['values'].mean().unstack(), linewidth=5)