解决Seaborn绘制多箱线图报错:无法识别country_name的问题
解决Seaborn箱线图"Could not interpret input 'country_name'"错误
报错的核心原因是country_name是你的DataFrame索引列,而非普通数据列,Seaborn的boxplot默认只会在数据列里查找x参数指定的字段,所以找不到就报错了。下面是两种简单的解决办法:
方法一:将索引转为普通数据列
用reset_index()把索引列转成常规列,之后就能直接用原代码绘制:
# 把索引列转为普通列,修改后的数据会保留原索引的内容到country_name列 holGROUPED = holGROUPED.reset_index() # 重新绘制箱线图 sns.boxplot(data=holGROUPED, x='country_name', y='deaths')
方法二:直接使用索引作为X轴数据
不修改原DataFrame结构,直接把索引传给x参数:
sns.boxplot(data=holGROUPED, x=holGROUPED.index, y='deaths')
额外提示
如果绘制后发现X轴的国家名称重叠,可以用matplotlib调整标签角度,提升可读性:
import matplotlib.pyplot as plt sns.boxplot(data=holGROUPED, x='country_name', y='deaths') plt.xticks(rotation=45, ha='right') # 右对齐标签,避免互相遮挡 plt.tight_layout() # 自动调整布局,防止标签被截断 plt.show()
内容的提问来源于stack exchange,提问作者krmbla
相关产品推荐
相关产品推荐

