编程语言
首页 > 编程语言> > Python / matplotlib在直方图中显示置信度

Python / matplotlib在直方图中显示置信度

作者:互联网

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

解决方法:

如果我正确理解您的问题,我认为下面的代码将按照您的建议行事.它似乎与您考虑的方法略有不同,我不确定它是否更有效.无论如何,通常有助于看到别人做某事的方式.它假设已经生成的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)

标签:confidence-interval,python,numpy,matplotlib,histogram
来源: https://codeday.me/bug/20190827/1735477.html