2015-12-01 152 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