Python |绘制直方图边界和频率

时间:2019-01-31 16:00:20

标签: python numpy matplotlib

我已经计算出间隔边界

import numpy as np

boundaries = np.array([-1.0, -0.5, 0.0, 0.5, 1.0])

和归一化频率

normalized_frequencies = np.array([0.10, 0.40, 0.40, 0.10])
  

我的问题:如何绘制直方图,其条形边界为boundaries,而y值为normalized_frequencies

1 个答案:

答案 0 :(得分:1)

您需要条形图而不是直方图。这里的重点是仅使用前四个边界值,然后将宽度等于边界之间的间距。在这种情况下,宽度为0.5。黑色的edgecolor用于区分条形。

import numpy as np

boundaries = np.array([-1.0, -0.5, 0.0, 0.5, 1.0])
normalized_frequencies = np.array([0.10, 0.40, 0.40, 0.10])
width = boundaries[1] - boundaries[0]

plt.bar(boundaries[0:-1], normalized_frequencies, width=width, 
        align='edge', edgecolor='k')

enter image description here

第二种选择是找到每个间隔的中心点

centers = (boundaries[1:] + boundaries[:-1]) / 2
width = centers[1] - centers[0]

plt.bar(centers, normalized_frequencies, width=width, 
        align='edge', edgecolor='k')
相关问题