Два гистограммы на одном графике из разных информационных фреймов (один общий столбец) - PullRequest
2 голосов
/ 07 июня 2019

У меня есть два простых фрейма данных

1.

count type
400   customer
1200  subscriber

2.

count type
2000  customer
5000  subscriber

Я пытаюсь создать гистограмму с одной цифрой.

Ось X : клиент - клиент, подписчик - абонент -> один и тот же тип рядом друг с другом)

Ось Y : количество

Я пытался

df1.plot.bar()
df2.plot.bar()

и застрял здесь.

Ответы [ 2 ]

2 голосов
/ 07 июня 2019

Вы захотите объединить данные вместе:

combined = df1.merge(df2, on="type", suffixes=["1", "2"]).set_index("type")

Затем вы можете построить их одним вызовом:

combined.plot.bar()
1 голос
/ 07 июня 2019

Мне нравится другой элегантный ответ. Однако, поскольку вы пометили matplotlib, вам может быть интересно узнать соответствующее решение. Идея здесь состоит в том, чтобы выровнять столбцы по краям основных тиков, а затем использовать отрицательную и положительную ширину, чтобы сместить их влево / вправо.

P.S .: Это специально разработанное решение для построения двух столбцов рядом. В принципе, это можно сделать общим для построения нескольких баров.

import matplotlib.pyplot as plt

plt.bar(df1['type'], df1['count'], align='edge', width=-0.3, label='count1')
plt.bar(df2['type'], df2['count'], align='edge', width=0.3, label='count2')

plt.legend()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...