pyplot.contourf() 在指定级别参数时返回错误

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

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

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

plt.contourf(x, y, z)

但是当我尝试为 levels 参数指定一个整数时,如下所示:

plt.contourf(x, y, z, levels=100)

它总是返回错误: TypeError: len() of unsized object

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

任何想法为什么会发生这种情况以及如何解决它的任何建议?


隔江千里
浏览 324回答 1
1回答

守候你守候我

对不起,这发生在你身上。文档在 2.2.3 版中发生了变化,但没有完全实现此功能。因此,根据 matplotlib 的版本,levels参数的解释不同。matplotlib < 3.0.0levels被解释为绘制轮廓的级别列表。整数被解释为单个级别。对于contourf(填充轮廓)图,您至少需要两个级别。使用之前已知的方式将级别数指定为第二个或第四个未命名参数plt.contourf(z, 100)plt.contourf(x, y, z, 100)matplotlib >= 3.0.0levels可以采用列表或整数。当为整数时,它表示(近似 [ * ])级数。相关的公关是这个。plt.contourf(z, levels=100)plt.contourf(x, y, z, levels=100)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python