Python 指定levels参数时,pyplot.tourtf()返回错误

Python 指定levels参数时,pyplot.tourtf()返回错误,python,matplotlib,typeerror,contourf,Python,Matplotlib,Typeerror,Contourf,编辑:问题很可能与版本有关。levels参数在版本3.0.0中采用整数参数,而在使用版本2.2.2时出现此问题。 更新:安装版本>=3.0.0后没有出现问题。 我试图使用matplotlib.pyplot.contourf()函数在Python中绘制等高线图,它的工作原理如下: plt.contourf(x, y, z) plt.contourf(x, y, z, levels=100) 但当我尝试为levels参数指定一个整数时,如下所示: plt.contourf(x, y, z) p

编辑:问题很可能与版本有关。
levels
参数在版本3.0.0中采用整数参数,而在使用版本2.2.2时出现此问题。

更新:安装版本>=3.0.0后没有出现问题。

我试图使用
matplotlib.pyplot.contourf()函数在Python中绘制等高线图,它的工作原理如下:

plt.contourf(x, y, z)
plt.contourf(x, y, z, levels=100)
但当我尝试为levels参数指定一个整数时,如下所示:

plt.contourf(x, y, z)
plt.contourf(x, y, z, levels=100)
它总是返回错误:
TypeError:len()未调整大小的对象

在文档中,它说参数
levels
可以是
int
array\u like
,所以我不知道为什么它甚至会调用
len()
函数


有什么想法可以解释为什么会发生这种情况,有什么建议可以解决吗?

对不起,这种情况会发生在你身上。在版本2.2.3中更改了文档,但未完全实现此功能。因此,根据matplotlib的版本,
levels
参数的解释不同

matplotlib<3.0.0

标高
被解释为绘制等高线的标高列表。整数被解释为单个级别。对于
轮廓f
(填充轮廓)图,您至少需要两个级别。使用之前已知的方法指定级别数作为第二个或第四个未命名参数

plt.contourf(z, 100)
plt.contourf(x, y, z, 100)
matplotlib>=3.0.0

级别
可以采用列表或整数。如果为整数,则表示(近似[])级别数。相关的公共关系是


不应该是这样的,但我可能有一个版本比3.0.0旧。我检查过了。这确实是问题所在(我运行的是2.2.2版)。