我在下面创建了直方图:
并且想知道如果不是绘制整个图形(蓝色),我可以绘制上边缘(黑色)?
或只是拟合线以匹配分布的顶部?
我的代码是:
plt.hist(histogramData, bins=200, normed=True, cumulative=True, edgecolor='b', facecolor='None')
我尝试删除'edgecolor'和'facecolor',但它似乎不起作用......
感谢您的帮助!
答案 0 :(得分:2)
我认为pylabs直方图代码使用numpys np.histogram()
函数,产生二进制数和计数;因此,如果您使用标准plot()
命令一起使用它,那么您就完成了(只记得同时对np.cumsum()
的累计外观计数np.histogram()
。
编辑:
关于评论,我引用了numpy.histogram()
documentation:
<强>返回强>:
hist :array
直方图的值。有关可能的语义的描述,请参阅normed和weights。
bin edges :dtype float数组
返回bin边缘(length(hist)+1)。
因此,要以所需的方式绘制数据:
hist, bins = np.histogram(data, bins=200)
plt.plot( bins[:-1], np.cumsum(hist) )
或者如果您想更精确,您甚至可以将数据值放在bin中心:
offset = bins[1:]-bins[:-1]
plt.plot( bins[:-1]+offset, np.cumsum(hist) )