【问题标题】:Select labels for plotting a bar graph选择用于绘制条形图的标签
【发布时间】:2016-10-20 19:16:48
【问题描述】:

我有一个 excel 文件,其中包含有关某些数据的信息,其中包含两列,一列描述对象,一列描述该对象出现的数量,例如:

house     5
car       3
boat      2

我想创建一个直方图,所以我创建了一个 pandas df

X = pandas.read_table("myfile.txt")   
categories = pandas.DataFrame({
    "object": X["object"],
    "total": X["total"]
})

接下来我绘制它:

categories.total.to_frame("objects").query("objects> 2").sort_values("objects", ascending=False).plot.bar(width=1)

这可行,但我想在 x 轴上显示对象的名称,现在它只是枚举对象。我该怎么做?

【问题讨论】:

    标签: python pandas matplotlib histogram


    【解决方案1】:

    Pandas 在绘制 x 轴时默认使用索引,因此您可以轻松设置它:

    In [27]: categories.set_index('object').query("total > 2").sort_values('total', ascending=False).plot.bar(rot=0, width=1)
    Out[27]: <matplotlib.axes._subplots.AxesSubplot at 0xabace48>
    

    您也可以明确指定 x 轴:

    In [31]: categories.query("total > 2").sort_values('total', ascending=False).plot.bar(x='object', rot=0, width=1)
    Out[31]: <matplotlib.axes._subplots.AxesSubplot at 0xa9a64e0>
    

    【讨论】:

    • x='object' 是正确的语法吗?第一个示例有效,但第二个示例无效,它给了我一个错误: KeyError: 'object'
    • 这很奇怪,因为 option1 工作正常,所以这不是原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    相关资源
    最近更新 更多