簡體   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