2016-09-03 2 views
4

Как создать многослойную Гистограмма так: enter image description herePython сложены гистограммы сгруппированы данные

import numpy as np 
import pylab as P 
import matplotlib.pyplot as plt 
import matplotlib 
matplotlib.style.use('ggplot') 

%pylab inline 
pylab.rcParams['figure.figsize'] = (15, 4) 
mu, sigma = 200, 25 
x = mu + sigma*P.randn(1000,2) 
n, bins, patches = P.hist(x, 10, normed=1, histtype='bar', stacked=True) 
P.show() 

Для сгруппированных данных.

import pandas as pd 
df1 = pd.DataFrame({'A': [1,2,3,4,5,6,7,8,9],'group': [1,0,0,0,0,1,1,1,1]}) 

Как df1.A.hist(by=df1.group, bins='doane', stacked=True) или

df1.A.hist(by=df1.group, bins='doane') 

результат только в: enter image description here

ответ

4

Вы можете pivot ваш DataFrame так, что каждая группа находится в другом столбце, а затем генерировать гистограмму.

df1 = pd.DataFrame({'A': [1,2,3,4,5,6,7,8,9],'group': [1,0,0,0,0,1,1,1,1]}) 
df1.pivot(columns='group', values='A').plot.hist(stacked=True) 

enter image description here

Edit: Добавлен параметр stacked=True в hist()

Смежные вопросы