如何使用matplotlib基于pandas数据绘制堆叠条形图
堆叠条形图不生效的解决方案
你当前使用的DataFrame为长表结构,pandas的plot方法绘制堆叠条形图时,默认将DataFrame的不同列作为堆叠的不同系列,直接调用方法无法识别分散在多行的party分类,因此无法生成堆叠效果。
调整步骤如下:
- 先将长表重塑为宽表,把
party的唯一值转为列,对应数值列num_legistators作为单元格值
# 重塑数据,若存在缺失的党派年份数据用0填充 df_pivot = df_toviz.pivot(index='year_start', columns='party', values='num_legistators').fillna(0)
- 基于重塑后的宽表绘制堆叠条形图
df_pivot.plot(kind='bar', stacked=True, ylabel='num_legislators')
注意核对原始数据中num_legistators的拼写,避免因列名拼写不一致导致报错
内容的提问来源于stack exchange,提问作者Nathan123
相关产品推荐
相关产品推荐

