[英]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
可以是int
或array_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.