【问题标题】:How to plot my dataframe (python & pandas)如何绘制我的数据框(python 和 pandas)
【发布时间】:2019-01-30 11:03:26
【问题描述】:

我目前有一个如下所示的数据框 (df): 我需要绘制它,使它看起来像这样:

![所需图形][2]

在图中,列是“索引”,蓝色条是“Total”,橙色条是“Total.1”

每次我尝试这样做时都会遇到 KeyErrors,请有人指出我正确的方向,因为我觉得我已经尝试了所有方法,但总是出错

【问题讨论】:

    标签: python python-3.x pandas matplotlib plot


    【解决方案1】:

    生成一个简单的水平堆积条形图很容易,下面的代码将完成任务。

    df.set_index('index').plot(stacked=True, kind='barh')
    plt.tight_layout()
    plt.show()
    

    但是,由于您的标签很长,布局会截断信息,您可能需要对标签进行预处理以使其看起来更好。


    以下是我推荐的绘图格式:

    options = {
        'stacked': True,
        'kind': 'barh',
        'title': 'Medals at the Winter and Summer Olympics'
    }
    
    df.rename(columns={'Total': 'Winter Games', 'Total.1': 'Summer Games'}).assign(
        code=df['index'].str.extract(r'\((.*?)\)')
    ).set_index('code')[['Winter Games', 'Summer Games']].plot(**options)
    
    plt.show()
    

    结果:

    【讨论】:

    • 当您说摆弄大量的国家标签并添加缩写列时,该列可以只是数字0...x吗?
    • 你是如何让它显示两种颜色的?我的只是一个蓝色的大条
    • 该栏的值正确,但在右上角我的键只显示 Total.1
    • 您确定要为两列编制索引吗?
    • 是的,我使用了和你一样的 .set_index('code')[['Total', 'Total.1']]
    猜你喜欢
    • 2015-09-29
    • 2017-02-21
    • 2018-11-09
    • 2021-11-04
    • 1970-01-01
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    相关资源
    最近更新 更多