【Python报错-01】解决matplotlib在Pycharm中运行报错:vars()参数必须有__dict__属性

1 运行错误

(1)程序的原代码如下图所示:

import matplotlib.pyplot as plt  # 是可视化绘图工具
……   #省略了计算SSE的代码
plt.plot(range(1, 11), SSE)
plt.xlabel("聚类数k", fontsize=12)
plt.ylabel("误差平方和SSE", fontsize=12)
plt.show()
plt.savefig("k-SSE关系对应曲线.png")

(2)一运行plt.plot(range(1, 11), SSE)就进入到pyplot .py模块的331行,然后继续运行后,出现报错。错误提示如下:
在这里插入图片描述(3)分析错误提示:
看错误提示的最后一行:TypeError:vars() argument must have dict attribute。
TypeError:vars() 参数必须要有__dict__属性
看完最后一行,再从最后往上看,可知是pyplot .py模块的331行有问题。

2 解决办法

(1)首先查看python解释器里面matplotlib的版本(在PyCharm的settings( File->settings->project:当前项目名->Project Interpreter),PyCharm中的版本已经和Anaconda同步了,版本没有问题。
在这里插入图片描述
(2)如果您像运行默认脚本一样运行代码(或者在PyCharm交互式控制台中),而不是在Jupyter中运行代码,就可能会出现这个问题。可以通过直接在py文件中设置后端use函数来修复这个错误,如下
在这里插入图片描述

import matplotlib.pyplot as plt  # 是可视化绘图工具
import matplotlib as mpl
import matplotlib.pyplot as plt  # 是可视化绘图工具
……   #省略了计算SSE的代码
plt.plot(range(1, 11), SSE)
plt.xlabel("聚类数k", fontsize=12)
plt.ylabel("误差平方和SSE", fontsize=12)
plt.show()
plt.savefig("k-SSE关系对应曲线.png")

参考文章

[1]matplotlib Pandas图,vars()参数必须有__dict__属性?

  • 10
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值