繁体   English   中英

pyplot.contourf()在指定的levels参数时返回错误

[英]pyplot.contourf() returns error when specified levels argument

编辑:问题很可能与版本有关。 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可以是intarray_like所以我不知道为什么它甚至会调用len()函数

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

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

matplotlib <3.0.0

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

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

matplotlib> = 3.0.0

levels可以采用列表或整数。 当一个整数时,它表示(近似[ * ])级别。 相关的PR就是这个

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM