2013-10-04 186 views
4

我試圖用matplotlib的pcolor函數實現一個等高線圖,但是,似乎有一些與網格排列有關的細微規則來確保完全覆蓋的圖形。python matplotlib pcolor空白空間

舉例說明:

a = arange(0., .8+.16, .16) 
b = arange(0., .5+.10, .10) 
A, B = meshgrid(a, b) 
Z = A + B 
pcolor(A,B,Z) 

這將返回數字 enter image description here

儘管shape(A) = shape(B) = 6。所以我的問題很簡單:什麼是影響上圖右邊的空白和我怎樣才能刪除它?謝謝。

+0

你也可以用'做的更好a = np.linspace(0,0.8,6,endpoint = True)' – tacaswell

回答

5

你看到的是浮點數四捨五入的結果。可以表示爲Python浮點數的最接近0.8的數字是0.80000000000000004。 Matplotlib然後圍繞它的下一個「好」數字來放置軸刻度標記的想法。您可以通過顯式設置軸限制控制這一行爲:

xlim(0, 0.8) 

或告訴Matplotlib以滿足您的數據準確,而不是設置限制概數:

axis('tight') 
+0

你能告訴我怎麼做'contourf'嗎? – diffracteD