Python Matplotlib:给定预先计算的计数和存储箱的打印直方图

Python Matplotlib:给定预先计算的计数和存储箱的打印直方图,python,numpy,matplotlib,Python,Numpy,Matplotlib,我有一些数据x,我将其传递到numpy.histogram(x)以获得计数和箱子边缘。然后我将它们保存到一个文件中。稍后,我想加载这些数据并绘制直方图 我有 counts = [20, 19, 40, 46, 58, 42, 23, 10, 8, 2] bin_edges = [0.5, 0.55, 0.59, 0.63, 0.67, 0.72, 0.76, 0.8, 0.84, 0.89, 0.93] 如何绘制此直方图?Pyplot的条形图可以在边缘对齐(默认为居中)使用,宽度由np.dif

我有一些数据
x
,我将其传递到
numpy.histogram(x)
以获得计数和箱子边缘。然后我将它们保存到一个文件中。稍后,我想加载这些数据并绘制直方图

我有

counts = [20, 19, 40, 46, 58, 42, 23, 10, 8, 2]
bin_edges = [0.5, 0.55, 0.59, 0.63, 0.67, 0.72, 0.76, 0.8, 0.84, 0.89, 0.93]

如何绘制此直方图?

Pyplot的
条形图可以在边缘对齐(默认为居中)使用,宽度由
np.diff
计算:

导入matplotlib.pyplot作为plt
将numpy作为np导入
图,ax=plt.子批次()
计数=np.数组([20,19,40,46,58,42,23,10,8,2])
bin_边=np.数组([0.5,0.55,0.59,0.63,0.67,0.72,0.76,0.8,0.84,0.89,0.93])
ax.bar(x=bin_边[:-1],高度=counts,宽度=np.diff(bin_边),align='edge',fc='skyblue',ec='black')
plt.show()

可选地,可以将XTICK设置为箱子边缘:

ax.set_xticks(bin_edges)
或到垃圾箱中心:

ax.set_xticks((bin_edges[:-1] + bin_edges[1:]) / 2)

链接的答案假设一个恒定的箱子宽度,这里的情况似乎不是这样。