Python matplotlib.pyplot:如何制作包含右bin边缘的bin计数的直方图



你能帮我,如何修改代码,以便获得一个直方图与箱子计数包括右bin边缘即bins[i-1] < x <= bins[i](而不是默认的左)?

import matplotlib.pyplot as plt
import numpy as np
data = [0,1,2,3,4]
binwidth = 1
plt.hist(data, bins=np.arange(min(data), max(data) + binwidth, binwidth))
plt.xlabel('Time')
plt.ylabel('Counts')
plt.show()

我认为在matplotlib或numpy中没有显式执行此操作的选项。

然而,您可以使用np.histogram()与您的data(和箱)的负值,然后否定输出并将其绘制为plt.bar()函数。

bins = np.arange(min(data), max(data) + binwidth, binwidth)
hist, binsHist = np.histogram(-data, bins=sorted(-bins))
plt.plot(-binsHist[1:], -hist, np.diff(binHist))

最新更新