Как добавить линию в гистограмму - PullRequest
0 голосов
/ 07 ноября 2018

Diclaimer: Я все еще плохо знаком с анализом данных и Python, поэтому, если вы найдете лучший способ написания кода для построения моих данных, я был бы более чем рад получить обратную связь.

У меня есть данные для двух разных категорий за 7 недель. Мне нужно вывести эти данные на график и сделать их легко читаемыми.

Первым делом я создал гистограмму с данными из группы 2, сложенными на данных из группы 1. Однако я также хотел бы добавить на свой график линию, которая немного лучше показывает эволюцию данных из группы 2.

Но когда я это делаю, в строке, похоже, используются разные значения для x, хотя я использовал точно такую ​​же вещь.

fig, ax = plt.subplots(figsize=(20,10))
sns.barplot('week', 'group1', data=memberships, color = '#E30613', saturation=1)
sns.barplot('week', 'group2', data=memberships, color = '#009FE3', bottom=group1, saturation=1)
sns.lineplot('week', 'group2', data=memberships)

Результат

Что я могу сделать, чтобы линия была сверху гистограммы?

РЕДАКТИРОВАТЬ: В дополнение к моему вопросу, здесь это набор данных, который я использую

1 Ответ

0 голосов
/ 07 ноября 2018

Я много боролся с этим. Сначала я попытался построить график, используя методы plot от панд, но мне не удалось получить линейный график поверх гистограммы. Поэтому я использовал стандартные функции matplotlib.

memberships = pd.DataFrame(data={'week':range(37,44), 
                                 'group1':[248, 243, 287, 354, 315, 348, 303], 
                                 'group2':[42,53,65,73,60,62,84]})

fig, ax = plt.subplots()
ax.bar(memberships.week-0.5, memberships.group1, color = '#E30613')
ax.bar(memberships.week-0.5, memberships.group2, color = '#009FE3', bottom=memberships.group1)
ax.plot(memberships.week, memberships.group2, linewidth=4)
...