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

在使用matplotlib进行数据可视化时遇到一个奇怪的TypeError,问题源于误将plt.figure函数赋值为一个元组,导致后续调用plt.figure(figsize=(10,10))时出错。错误只在特定环境中出现,例如Jupyter Notebook,因为之前的错误赋值被环境记住。解决方法是重启内核并重新运行代码。这个错误提醒我们在编程中要避免覆盖内置函数或方法。
摘要由CSDN通过智能技术生成

问题描述

今天在用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等)运行代码,运行结束后变量就失效了,便不会出现这类错误赋值导致的错误。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xin学数据

为你点亮一盏灯,愿你前进无阻。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值