2016-11-23 78 views
0

刪除等高線我使用contourf繪製一些數據,但我有麻煩,當涉及到設置透明度。我希望能夠設置填充和線條的透明度,但似乎無法做到這一點。改變的透明度/在Matplotlib

的我的代碼的簡化版本如下:

array = np.random.rand(100,100) 

#lonit and latit are latitude and longitude grids from an input dataset 
LONG, LAT = np.meshgrid(lonit, latit) 
longitude,latitude = m(LONG, LAT) 

pp = m.contourf(longitude, latitude, imagelist[0], 50, 
      cmap='YlOrRd', extend="min", alpha = .5) 

plt.show() 

此輸出:enter image description here

和你可以看到,儘管阿爾法被設置爲0.5,該輪廓線的透明度保持在1.有沒有人知道如何修正這個問題,使它們與填充物具有相同的透明度?或者,完全刪除輪廓線可能會工作,但我喜歡contourf方法,因爲它使視覺化變得更容易(除了前面提到的線條)!

我的目標是在底下顯示底圖,因此想要移除/使它們看不見。

在此先感謝!

UPDATE:MORE圖表來顯示問題

阿爾法設定爲1.0: enter image description here

阿爾法設定爲0.1: enter image description here

阿爾法設置爲0.6和抗鋸齒設置爲True:

pp = m.contourf(longitude, latitude, imagelist[0], 50, 
cmap='YlOrRd', extend="min", alpha = 0.6, antialiased = True) 

enter image description here

這提高了線,但仍然沒有擺脫他們。

+0

你肯定'alpha'參數不會改變雙方的透明度? – Chr

+0

嘗試降低阿​​爾法更多? – Inconnu

+0

你好,我已經更新了更多的圖像顯示不同的alpha水平的問題! - Alpha = 0會產生一個完全不可見的情節,這意味着它的透明度正在改變。也許我需要完全刪除輪廓線,所以我會將此選項添加到原始問題。 –

回答

0

使用antialiased = True時仍然看到的線條實際上不是線條,而是閃爍的背景,因爲填充的輪廓彼此不接觸。

一個非常難看的補丁可能是繪製兩次相同但略有不同的級別。

pp1 = m.contourf(longitude, latitude, imagelist[0], 50, cmap='YlOrRd', extend="min", alpha = 0.3, antialiased = True) 
pp2 = m.contourf(longitude, latitude, imagelist[0], 55, cmap='YlOrRd', extend="min", alpha = 0.3, antialiased = True) 

請注意,您還必須將alpha值減半以獲得相同的透明度。 你仍然會看到線條,但不像以前那麼強壯。