[英]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.