python - 如何绘制我的数据框(python 和 pandas)

标签 python python-3.x pandas matplotlib plot

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

![所需图表][2]

在图表中,列是“index”,蓝色条是“Total”,橙色条是“Total.1”

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

最佳答案

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

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()

结果是:

enter image description here

关于python - 如何绘制我的数据框(python 和 pandas),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51996431/

相关文章:

python - 使用 matplotlib 在一个图中绘制多个直方图

python - 从 unittest 测试调用时 argparse 失败

python - 迭代JSON列表以匹配特定的键值对

python - Sublime Text 2 控制台和 python 3

python - 根据另外两个字典替换一个字典值列表

python - Pandas - df.size() 错误 : 'numpy.int64' object is not callable

python - 通过python将PDF文件发布到SOLR

带有utf8问题的python正则表达式

python - 如何获取列表中空字典的数量

python - Pandas :每月日期范围与天数