matplotlib bug1:TypeError_ ‘tuple‘ object is not callable; matplotlib figsize.

导读:本篇文章讲解 matplotlib bug1:TypeError_ ‘tuple‘ object is not callable; matplotlib figsize.,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

问题描述

今天在用matplotlib画图的时候,发生了一件很神奇的事,plt.figure()不管用了!

具体代码如下:

# 调用库
import pandas as pd
import matplotlib.pyplot as plt
# 生成数据框,x为0~50,y为x的平方
df = pd.DataFrame([i/2 for i in range(100)],columns=['x'])
df['y2'] = df.x.apply(lambda x:x*x)
# 绘图
fig = plt.figure(figsize=(10,10))   # 指定画布大小
plt.plot(df.x,df.y2,label='y=x^2')  
# 加注释
plt.annotate(r'y=x^2'            # 标签
             ,xycoords='data'
             ,xy=(40,40*40)      # 指向点
             ,textcoords='offset points'
             ,xytext=(-50,40)    # 注释位置
             ,fontsize=15        # 字号
             ,c='b'              # 颜色
             ,arrowprops=dict(arrowstyle='->'           # 指向点使用的线
                              ,connectionstyle='angle3' # 线类型
                             ))
plt.show()

跑完报错,该报错指向第6行fig = plt.figure(figsize=(10,10))

TypeError: ‘tuple’ object is not callable; matplotlib figsize.

这个报错咋一看很无厘头,怎么变成了元组对象不能调用figsize()
而且将代码复制到其他地方跑的时候并没有问题,唯独这时候跑的时候就有问题。

解决方法

在后来的某一个巧合下,忽然意识到了错误的来源,就是一开始,我写错了代码,形如下(感兴趣的小伙伴可以复现一下~)

 plt.figure = (1010)

plt.figure原本是一个函数,但是被我赋值成了一个元组,所以后来的代码plt.figure(figsize=(10,10)),就变成了(10,10)(figsize=(10,10)),把元组看成一个函数调用figsize,故报错。

该报错或许只会在jupyter notebook和测试环境等会暂存变量的环境中才会出现,因为这类环境存储了我前面写错的赋值。如果是直接通过编译器(如vscode、pycharm等)运行代码,运行结束后变量就失效了,便不会出现这类错误赋值导致的错误。

解决方法很简单,重启内核,然后重跑代码,便可正常画图。
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/66922.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!