Matplotlib散点图报x与y需同尺寸但二者尺寸一致问题求助
报错根因
你调用groupby("mois")['death_cause'].count()统计后,mois已成为df_death_mois1的行索引,而非普通数据列。执行print(df_death_mois1.columns)可验证:输出仅包含['death_cause'],不存在名为mois的列。matplotlib调用scatter时无法匹配到x参数对应的列值,因此触发尺寸不一致报错。
解决方案
以下三种方法任选其一即可:
- 方法1:groupby时禁止分组键转为索引
修改分组统计代码为:
无需额外执行df_death_mois1 = df_death_mois.groupby("mois", as_index=False)['death_cause'].count()to_frame(),该语句输出结果直接为带mois、death_cause两列的DataFrame,原有绘图代码可正常运行。 - 方法2:绘图时直接读取索引和列值
修改散点图绘制代码为:plt.scatter(x=df_death_mois1.index, y=df_death_mois1['death_cause']) - 方法3:手动将索引重置为普通列
在分组统计、转DataFrame后追加重置索引代码:
重置后df_death_mois1 = df_death_mois1.reset_index()mois会转为普通数据列,原有绘图代码可正常运行。
内容的提问来源于stack exchange,提问作者user17501078
相关产品推荐
相关产品推荐

