3

这是我的问题。我有一些数据我合并以获得“数字化”pdf,这很好。现在,我想找到一种方法,通过对 bin 组进行不同的着色来指示不同的置信区间。特别是,从包含我想找到的最高计数的 bin 开始,并为所有面积总和小于 0.6 的最高 bin 着色,比如红色。然后,总是通过减少计数来挑选新的垃圾箱,我想将那些将我的红色区域增加到 0.8 的垃圾箱涂成橙色。我正在考虑使用 numpy 来获取垃圾箱和计数,将它们分类为 3 个系列(红色、橙色和原始颜色)并用 pyplot 的条形图绘制它们。希望您能指出一个更快的方法,谢谢!

4

1 回答 1

6

如果我正确理解您的问题,我认为下面的代码将按照您的建议进行。它似乎与您考虑的方法有点不同,我不确定它是否更有效。无论如何,了解别人做某事的方式通常会有所帮助。它假定已经生成的 pdf(直方图)具有由变量“bins”表示的 bin 和由变量“binwidth”表示的 bin 宽度。

gray = (.5,.5,.5)
orange = (1.0, 0.647, 0.0)
red = (1.0, 0.0, 0.0)

clrs = [gray for xx in bins]

idxs = pdf.argsort()
idxs = idxs[::-1]
oranges = idxs[(cumsum(pdf[idxs])*binwidth < 0.8).nonzero()]
reds = idxs[(cumsum(pdf[idxs])*binwidth < 0.6).nonzero()]

for idx in oranges:
    clrs[idx] = orange

for idx in reds:
    clrs[idx] = red

bar(left=bins,height=pdf,width=binwidth,color=clrs)

这是我与相关 PDF 和 CDF 相处的结果视图

于 2011-06-02T16:38:00.773 回答