You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matplotlib绘制柱状图标题与坐标轴标签不显示问题排查

问题出在「方法调用」和「属性赋值」的混淆!

嘿,这个小坑我刚学Matplotlib的时候也踩过——你把标题、坐标轴标签的设置方法当成了普通属性直接赋值啦!

错误核心原因

plt.title、plt.xlabel、plt.ylabel都是Matplotlib提供的函数,必须通过()传递字符串参数来调用,才能触发设置标签的逻辑。而你用plt.title='xxx'这种写法,只是把这些变量重新赋值成了字符串,根本没有告诉Matplotlib要显示标题/标签,所以自然看不到任何文字。

修正后的完整代码

把赋值语句改成函数调用就搞定了:

import matplotlib.pyplot as plt
import numpy as np

# 生成模拟数据集:
districts = ['Alappuzha','Ernakulam','Idukki','Kannur','Kasaragod','Kollam','Kottayam','Kozhikode','Malappuram','Palakkad','Pathanamthitta','Thiruvananthapuram','Wayanad','Thrissur']
distAb = ['Alp','Ern','Idk','Knr','Ksd','Klm','Ktm','Kzd','Mlp','Plk','Pta','Tvm','Wyd','Tsr']
population = [2121943,3279860,1107453,2525637,1302600,2629703,1979384,3089543,4110956,2810892,1195537,3307284,816558,3110327]
posArrange = np.arange(len(districts))

# 创建柱状图
plt.bar(posArrange,population,color='#ff9900', width=.8)
# 改成函数调用传递参数!
plt.title('Population of Districts in Kerala')
plt.xlabel('Districts')
plt.ylabel('Population')
plt.xticks(posArrange,distAb)

# 显示图形
plt.show()

额外小建议

如果以后要做更复杂的绘图,推荐用Matplotlib的面向对象风格,这种方式能更清晰地控制每个绘图元素,也不容易再犯这类混淆错误:

fig, ax = plt.subplots()
ax.bar(posArrange, population, color='#ff9900', width=.8)
ax.set_title('Population of Districts in Kerala')
ax.set_xlabel('Districts')
ax.set_ylabel('Population')
ax.set_xticks(posArrange)
ax.set_xticklabels(distAb)
plt.show()

内容的提问来源于stack exchange,提问作者Santo K. Thomas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:43:48