我已经使用pyplot.hist()函数创建了一个matplotlib直方图。我想在条形图中添加一个容器高度的Poison误差平方根(sqrt(binheight))。我该怎么做?.hist()的返回元组包括return[2]-> 1 Patch对象的列表。我只能发现可以向通过pyplot.bar()创建的条形图添加错误。
pyplot.hist()
matplotlib
sqrt(binheight)
.hist()
return[2]
pyplot.bar()
fiei3ece1#
实际上,你需要使用bar。你可以使用hist的输出并将其绘制为一个条形图:
hist
import numpy as np import pylab as plt data = np.array(np.random.rand(1000)) y,binEdges = np.histogram(data,bins=10) bincenters = 0.5*(binEdges[1:]+binEdges[:-1]) menStd = np.sqrt(y) width = 0.05 plt.bar(bincenters, y, width=width, color='r', yerr=menStd) plt.show()
vc6uscn92#
您也可以使用pyplot.errorbar()和drawstyle关键字参数的组合。下面的代码使用阶梯线图创建直方图。每个bin的中心有一个标记,每个bin都有必要的泊松误差条。
pyplot.errorbar()
drawstyle
import numpy import pyplot x = numpy.random.rand(1000) y, bin_edges = numpy.histogram(x, bins=10) bin_centers = 0.5*(bin_edges[1:] + bin_edges[:-1]) pyplot.errorbar( bin_centers, y, yerr = y**0.5, marker = '.', drawstyle = 'steps-mid' ) pyplot.show()
当在同一个图上绘制多个直方图的结果时,线图更容易区分。此外,使用yscale='log'绘制时,它们看起来更好。
yscale='log'
2条答案
按热度按时间fiei3ece1#
实际上,你需要使用bar。你可以使用
hist
的输出并将其绘制为一个条形图:vc6uscn92#
替代方案
您也可以使用
pyplot.errorbar()
和drawstyle
关键字参数的组合。下面的代码使用阶梯线图创建直方图。每个bin的中心有一个标记,每个bin都有必要的泊松误差条。个人观点
当在同一个图上绘制多个直方图的结果时,线图更容易区分。此外,使用
yscale='log'
绘制时,它们看起来更好。