2015-12-01 146 views
3

我想對healpy.mollview 使用別人的colormaps我succeded與此代碼mollview:使用matplotlib顏色表並更改背景顏色

from healpy import mollview 
from pylab import arange, show, cm 
m = arange(768) 
mollview(m, cmap=cm.bwr) 
show() 

,但我得到一個意外的藍色背景,有沒有辦法,我可以將其設置爲白色

回答

5

healpy似乎對其默認顏色映射進行了修改,以更改顏色超出範圍時發生的情況。所以,我們需要在cm.bwrhealpy之前也這樣做。我們可以通過cmap.set_under('w')將此顏色設置爲白色。

這對我來說好像是healpy中的一個錯誤,因爲這會影響您嘗試使用的大多數顏色映射。

from healpy import mollview,cartview 
from pylab import arange, show, cm 

cmap = cm.bwr 
cmap.set_under('w') 

m = arange(768) 
mollview(m, cmap=cmap) 
show() 

enter image description here

要完全模仿什麼healpy確實給它的默認顏色映射(它使用jet),我們需要設置overunderbad值。這裏是healpy github的relevant function

cmap=cm.bwr 
cmap.set_over(cmap(1.0)) 
cmap.set_under('w') 
cmap.set_bad('gray') 
0

你看到的是不是一個意外的背景色。您使用的顏色映射使您的繪圖中的最低值顯示爲藍色。由於你身邊的東西圓形的東西似乎是零,這在圖中顯示爲藍色。嘗試使用白色爲零的colormap

+0

投影周圍的面積不爲零。如果你將鼠標懸停在那裏,只顯示一個空值列表[[]',其值通常是。您可以通過更改'set_under'值來解決此問題,而不是將自己限制爲以白色開始的顏色映射。以我的答案爲例。 – tom