这是我的问题我收集了一些数据来获得“数字化”的pdf文件,这很好。
现在,我想找到一种方法,通过对bin组进行不同的着色来表示不同的置信区间。
特别是,从包含我想要找到的最高数量的箱子开始,把所有面积总和小于0.6的最高箱子涂成红色然后,总是通过减少计数来挑选新的垃圾箱,我想把那些把我的红色区域增加到0.8的垃圾箱涂成橙色。
我正在考虑使用numpy来获取容器和计数,将它们分为3个系列(红色、橙色和原始颜色),并用pyplot的条形图绘制它们。
希望你能指出一个更快的方法,谢谢!
最佳答案
如果我正确理解你的问题,我认为下面的代码将按照你的建议来做。这看起来和你考虑的方法有点不同,我不确定它是否更有效。不管怎样,看到别人做事的方式通常会有帮助。它假设已经生成了一个pdf(直方图),其中包含一个由变量“bins”表示的箱子和一个由变量“bin width”表示的箱子宽度。
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)