2012-04-11 39 views
8

我使用matplotlib imshow從numpy數組中繪製數據。但是,有些點沒有數據。我使用np.zeroes初始化了這個數組,所以這些點將拖曳整個地圖。我知道這些數據都不會有0.0的值。有什麼方法可以讓我告訴imshow例程忽略這些要點(即讓它們變白,以便清楚它們是空的)?使用Matplotlib imshow將沒有數據的點設置爲白色

+0

你有兩個很好的答案;考慮選擇一個正確的。我結合了兩個答案來完成我的目標。它們都比定義cmap要容易得多。 – physicsmichael 2014-02-28 05:49:30

回答

10

您是否嘗試過使用NaN而不是零來實例化您的數組,以查看matplotlib的默認值是否會以適合您的方式忽略NaN?你也可以嘗試只使用邏輯索引,以使0爲NaN平等的位置正確繪製前:

my_data[my_data == 0.0] = numpy.nan 

或者,你可以使用NaN的想法和follow this link's advice和使用NumPy的屏蔽陣列,以繪製的NaN條目作爲你喜歡的顏色。

我想你也可以使用該鏈接的想法來在零位置製作一個被屏蔽的數組,如果你不喜歡它,不用去NaN選項。

3

使用Python填充數組無法顯示不應顯示的點。

y_series_1 = [1,None,None,4,5] 
y_series_2 = [1,2,5,6,7] 

對於本示例,y_series_1線將在第二個點和第三個點從X軸消失。結果是換行符(行開始,消失,然後繼續在第四個點),我相信這是你以後的行爲。

相關問題