Python堆叠直方图分组数据

4
我该如何创建一个像这样的堆叠直方图: enter image description here
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')

仅返回结果: 在此输入图片描述
1个回答

4
你可以将DataFrame pivot,这样每个组就在不同的列中,然后生成直方图。
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

编辑:在hist()中添加了stacked=True参数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接