Matplotlib调用plt.title报'str' object is not callable错误
报错原因
出现'str' object is not callable报错,是因为你之前运行的代码中,错误地给plt.title、plt.xlabel、plt.ylabel这三个matplotlib内置函数赋了字符串类型的值,覆盖了原本的函数对象。后续你再以plt.title("xxx")的形式加括号调用时,实际是在尝试执行一个字符串变量,自然会触发类型错误。
这个逻辑和你测试的现象完全吻合:注释掉标题、轴标签相关的调用语句,只保留plt.plot(ypred)时,没有触发被覆盖成字符串的属性,所以可以正常绘图。
最常见的错误触发写法:直接给方法名赋值,而不是调用方法传参
# 错误写法:直接赋值会覆盖原函数 plt.title = "Predicted Price for next 50 days" plt.xlabel = "Days" plt.ylabel = "Price"
解决方法
- 最快修复方式:重启当前Python/IPython/Jupyter运行内核,清空所有历史变量赋值后,重新运行正确的绘图代码即可。
可正常运行的代码参考:import matplotlib.pyplot as plt plt.figure(figsize=(12, 6)) plt.title("Predicted Price for next 50 days") plt.xlabel("Days") plt.ylabel("Price") plt.plot(ypred) plt.show() - 无需重启内核的修复方式:在绘图代码前重新导入pyplot模块,还原被覆盖的内置方法,执行
import matplotlib.pyplot as plt后再运行绘图逻辑即可。 - 避坑提示:后续编码不要给
plt.title、plt.xlabel这类内置方法名直接赋值,所有标题、标签设置都要使用带括号传参的函数调用形式。
内容的提问来源于stack exchange,提问作者Arushi Jain
相关产品推荐
相关产品推荐

