1

我试图制作不同条形颜色不同的直方图。我很高兴找到这个页面,它提供了为我完成这一切的脚本。只有一个问题 - 它似乎不支持累积直方图,就像您可以通过在常规 Matplotlib 直方图中添加“cumulative=True”来做到的那样。有人能告诉我如何修改这个文件让我绘制累积的、多色的直方图吗?非常感谢,亚历克斯

编辑:我认为最好的解决方案是在直方图类中添加一个函数,如下所示:

def make_cumulative(self):
  self.occurrences = np.cumsum(self.occurrences)

但我不知道事件被存储为什么,或者即使以这种方式将其视为参数是否有意义。

4

1 回答 1

2

事后看来,解决方案非常简单明了。直方图对象只是每个 bin 出现的数组,所以我只取了直方图本身的 cumsum。

所以基本上

import histogram, numpy 
y = range(0, 100) #Except I used real data
Hist = histogram(y, bins=100, range=[0,100])
colors = ['red', 'blue', 'green', ]
ranges = [[0,30], [30,31], [31,100]]
fig = pyplot.figure(figsize=(8,6))
ax, plt, _ = fig.plothist(Hist, alpha=0) # plot for spacing
for c, r in zip(colors, ranges):
    plt = ax.overlay(Hist, range=r, facecolor=c)
print y

CumulativeHist = numpy.cumsum(h6)
colors = ['red', 'blue', 'green', ]
ranges = [[0,30], [30,31], [31,100]]
fig = pyplot.figure(figsize=(8,6))
ax, plt, _ = fig.plothist(CumulativeHist, alpha=0) # plot for spacing
for c, r in zip(colors, ranges):
    plt = ax.overlay(CumulativeHist, range=r, facecolor=c)

pyplot.show()

会做两个情节,其中第二个是第二个的累积版本。谢谢您的帮助。

亚历克斯

于 2013-03-08T03:00:12.400 回答