我目前有一个数据框(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()
结果是:
关于python - 如何绘制我的数据框(python 和 pandas),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51996431/