How to draw histogram with same bins width for unequally spaced bins in matplotlib

前端 未结 1 1089
伪装坚强ぢ
伪装坚强ぢ 2021-01-06 06:53

I am trying to draw a histogram with multiple data series in matplotlib.

I have unequally spaced bins, however I want that each bin get the same width. So I used attr

1条回答
  •  借酒劲吻你
    2021-01-06 07:08

    a solution can be to compute the histogram by numpy and plot the bars individually by hand:

    aa1 = [0,1,1,2,3,3,4,4,5,9]
    aa2 = [0,1,3,3,4,4,4,4,5,6,7,9]
    bins = [0,3,9]
    height = [np.histogram( xs, bins=bins)[0] for xs in [aa1, aa2]]
    left, n = np.arange(len(bins)-1), len(height)
    
    ax = plt.subplot(111)
    color_cycle = ax._get_lines.color_cycle
    
    for j, h in enumerate(height):
        ax.bar(left + j / n, h, width=1.0/n, color=next(color_cycle))
    
    ax.set_xticks(np.arange(0, len(bins)))
    ax.set_xticklabels(map(str, bins))
    

    hist

    0 讨论(0)
提交回复
热议问题