【问题标题】:Matplotlib Histogram AlignmentMatplotlib 直方图对齐
【发布时间】:2014-05-10 14:12:06
【问题描述】:
def vs_time(data): #MUBASHWER, histogram
    clf()
    hist(data.keys(), bins = 12, weights = data.values())
    xticks(arange(0,24,2))
    xlabel('Time')
    ylabel('Number of fatalities')
    title('Number of Fatalities vs Time')
    webshow('vs_time.png')

直方图:

我希望 x 轴上的小时数位于每个条的左边缘。但它们既不在中心,也不在任何边缘。请帮忙。如果可以在不改变轴的情况下对直方图进行处理,问题就可以解决。

【问题讨论】:

    标签: python matplotlib histogram


    【解决方案1】:

    这显然是因为生成的直方图的 bin 边缘不仅仅是偶数 0、2、4....22。

    要获得所需的结果,只需使用 bins= 参数,即:

    plt.hist(YOUR_DATA,bins=arange(0,24,2)) #for bin edge 0,2,4...,22, as in your figure.
    

    【讨论】:

    • 谢谢,它有效。如果没问题,您能解释一下为什么会这样吗?
    • 当然,不指定bins时,会自动确定边缘;当您通过int 指定bins 时,边缘将取决于数据的分布方式。无论哪种情况,都不能保证边缘会恰好落在您想要的确切值上。因此,直接的方法是将bins 指定为包含边的array
    • 谢谢!我现在明白了。
    猜你喜欢
    • 2015-01-20
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    相关资源
    最近更新 更多