簡體   English   中英

Matplotlib surface_plot色彩圖被Nan的中毒了嗎?

[英]Matplotlib surface_plot colormap getting poisoned by Nan's?

我有一個3d matplotlib surfaceplot。 Z軸是標准偏差(在-4,+ 4之間)。 我制作了一個色圖,使-4 =紅色,0白色和+4綠色。

cmap1 = LinearSegmentedColormap.from_list("my_colormap", ((1, 0, 0),(1,.25,.25),(1,1,1), (0.25,1,0.25),(0, 1, 0)), N=15, gamma=1.0)

運行良好。 但是現在我刪除了數據的一半冗余值,但將下三角矩陣轉換為NaN(還有(1,1)(2,2)...(n,n)點= Nan)。

這顯示出我不喜歡的文物。 曲面圖在具有數據的區域的邊界處繪制的多邊形,而具有Nans的區域將給出鮮紅的多邊形,這些紅色的多邊形不符合圖表的色圖。 我已經附上了我的意思的圖片,在這兩種情況下都是丑陋而令人困惑的工件 我已經附上了我的意思的圖片,在這兩種情況下都是丑陋而令人困惑的工件

有誰知道我該如何消除?

這是一個認真的工作,可能不是最有用的。 但是可以轉換您的域,以便您的有效值占據整個數組。 將其視為“獲取數據”。 這導致繪制實線。

它涉及制作x和y輸入,然后使用scipy的interp2d查找對應的z值。

我知道這是一個令人討厭的解決方法,但這是過去我能想到的最好的解決方法。

對我來說,解決方案不是將NaN放在(0,0),(1,1)..(n,n)上,而是使這些零為零。 其余的我仍然改為Nans。 這消除了丑陋的紅色眼淚。

而不是raw[np.tril_indices(raw.shape[0],-1)] = np.nan

我使用了raw[np.tril_indices(raw.shape[0],0)] = np.nan

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM