Наложение двух отдельных гистограмм в Python - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть два отдельных фрейма данных, которые я превратил в гистограммы, и я хочу знать, как я могу их наложить, чтобы для каждой категории по оси x полоса была разного цвета для каждого фрейма данных.Это код, который я имею для отдельных гистограмм.

df1.plot.bar(x='brand', y='desc')
df2.groupby(['brand']).count()['desc'].plot(kind='bar')

Я пробовал этот код:

previous = df1.plot.bar(x='brand', y='desc')
current= df2.groupby(['brand']).count()['desc'].plot(kind='bar')
bins = np.linspace(1, 4)

plt.hist(x, bins, alpha=0.9,normed=1, label='Previous')
plt.hist(y, bins, alpha=0.5, normed=0,label='Current')
plt.legend(loc='upper right')
plt.show()

Этот код не накладывается на графики должным образом.Проблема в том, что в dataframe 2 нет числовых значений, поэтому мне нужно использовать метод count.Ценю помощь!

Ответы [ 2 ]

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

Использовать гистограмму Сиборна с несколькими переменными . В вашем случае это будет:

import seaborn as sns

previous = df1.plot.bar(x='brand', y='desc')
current= df2.groupby(['brand']).count()['desc']


sns.distplot( previous , color="skyblue", label="previous")
sns.distplot( current , color="red", label="Current")
0 голосов
/ 16 ноября 2018

Возможно, вам придется использовать объекты осей в matplotlib.Говоря простым языком, вы создаете фигуру с каким-то объектом осей, связанным с ней, а затем можете вызвать его из нее.Вот один из способов сделать это:

fig, ax = plt.subplots(1, 1)

ax.hist(x, bins, alpha=0.9,normed=1, label='Previous')
ax.hist(y, bins, alpha=0.5, normed=0,label='Current')
ax.legend(loc='upper right')

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