如何修改Matplotlib柱状图的Y轴范围?问题排查及解决
解决Matplotlib柱状图Y轴无法从0起始且报错的问题
问题场景
我有一个DataFrame(df),从中索引得到europe_n(5行45列),想基于字符串类型的Country列和数值逻辑的Population列绘制柱状图,初始代码如下:
plt.bar(df['Country'],df['Population'], label='Population') plt.xlabel('Country') plt.ylabel('Population') plt.legend() plt.show()
遇到的问题
生成的图表Y轴起始值为43,094,尝试调用plt.ylim(0,500000)调整Y轴从0开始时,既无效果还报错,Jupyter提示「没有可绘制的整数」。
排查与解决
排查后发现DataFrame所有列都是object数据类型——Population列虽然逻辑上是数值,但实际存储为对象类型,导致Matplotlib无法识别为数值型数据进行正确的轴范围设置。
将Population列转换为int类型后,代码正常生效,plt.ylim()也能正确设置Y轴范围,得到预期图表。
修正后的完整代码
# 先转换Population列为整数类型 df['Population'] = df['Population'].astype(int) # 绘制柱状图并设置Y轴范围 plt.bar(df['Country'], df['Population'], label='Population') plt.xlabel('Country') plt.ylabel('Population') plt.ylim(0, 500000) plt.legend() plt.show()
内容的提问来源于stack exchange,提问作者Qas
相关产品推荐
相关产品推荐

