python - 修改Matplotlib五彩直方图脚本使其累积

标签 python matplotlib plot histogram

我试图制作直方图,其中不同的条形有不同的颜色。我很高兴地发现this page它提供了为我完成这一切的脚本。只有一个问题 - 它似乎不支持累积直方图,就像您可以通过在常规 Matplotlib 直方图中添加“cumulative=True”来实现。 有人可以告诉我如何修改this file让我绘制累积的彩色直方图? 多谢, 亚历克斯

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

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

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

最佳答案

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

所以基本上

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()

将制作两个图,其中第二个是第二个的累积版本。 感谢您的帮助。

亚历克斯

关于python - 修改Matplotlib五彩直方图脚本使其累积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15277006/

相关文章:

python - 使用非交换符号时 Sympy 中的最大递归深度错误

python - 如何在 Python 中使用 Win32 API?

python - 将 Iron Python 与 Solidworks API 结合使用

Python - 在对齐的列中打印 CSV 字符串列表

Pandas、条形图注释

python - 如何在 Matplotlib 中绘制重复的图例

r - ggplot2 - 在图的顶部添加辅助 y 轴

python - 尝试使用 python(matplotlib 和 numpy)绘制函数,如果我稍微改变它,就会遇到值错误和类型错误

r - 在 R 中绘制具有不同日期的两个时间序列

plot - 如何在 Gnuplot 中缩放轴