问题很可能与版本有关。该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()函数任何想法为什么会发生这种情况以及如何解决它的任何建议?
1 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
对不起,这发生在你身上。文档在 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可以采用列表或整数。当为整数时,它表示(近似 [ * ])级数。相关的公关是这个。
plt.contourf(z, levels=100)
plt.contourf(x, y, z, levels=100)
添加回答
举报
0/150
提交
取消