Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用堆叠的条形图创建直方图_Python_Python 2.7_Matplotlib - Fatal编程技术网

Python 使用堆叠的条形图创建直方图

Python 使用堆叠的条形图创建直方图,python,python-2.7,matplotlib,Python,Python 2.7,Matplotlib,我以这种方式创建柱状图: selected_features = ["HOUR","CLUSTER"] plt.figure(1) plt.hist(df[selected_features].values[:,0]) plt.title("HOUR") plt.xlabel("Value") plt.ylabel("Frequency") plt.draw() plt.show() filter = df["CLUSTER"] == 1 plt.hist([df["HOUR"][filter

我以这种方式创建柱状图:

selected_features = ["HOUR","CLUSTER"]
plt.figure(1)
plt.hist(df[selected_features].values[:,0])
plt.title("HOUR")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.draw()
plt.show()
filter = df["CLUSTER"] == 1
plt.hist([df["HOUR"][filter],df["HOUR"][~filter]],stacked=True)
plt.show()
CLUSTER
的值为0或1

现在,我想将每个条形图转换为一个具有两个区域(比如红色和绿色)的堆叠条形图,以便显示每个条形图的
值的分布。我怎么做

编辑:

我尝试了这个方法,但它给出了一个错误
ValueError:大小不兼容:参数“height”的长度必须为9或标量

N=9
ind = np.arange(N)    # the x locations for the groups
width = 0.35

p1 = plt.bar(ind, df[df["CLUSTER"]==0][['HOUR']],color='r')
p2 = plt.bar(ind, df[df["CLUSTER"]==1][['HOUR']],color='y')

plt.legend((p1[0], p2[0]), ('0', '1'))

plt.show()
数据:

我是这样做的:

selected_features = ["HOUR","CLUSTER"]
plt.figure(1)
plt.hist(df[selected_features].values[:,0])
plt.title("HOUR")
plt.xlabel("Value")
plt.ylabel("Frequency")
plt.draw()
plt.show()
filter = df["CLUSTER"] == 1
plt.hist([df["HOUR"][filter],df["HOUR"][~filter]],stacked=True)
plt.show()

这可能会有帮助:@cel:谢谢。事实上,我已经检查了本教程并试图将其应用到我的案例中,但它给了我一条错误消息(请参见我的编辑)。您能同时提供您的数据吗?@DimKoim:好的,请参见我的上一次编辑。@cel:我认为这个解决方案对于我的案例来说过于复杂。我找到了另一个(更简单的)解决方案(请参阅我的答案)。如果其中一个答案解决了您的问题,最好接受您自己的或eyllanescs的解决方案,这样这个问题就不会留在未回答的问题列表中。@ImportanceOfBeingErnest:我想接受我的答案,但由于堆栈溢出的规则,我只能在2天内完成