mollview:使用 matplotlib 颜色图并更改背景颜色
mollview: use matplotlib colormaps and change background color
我正尝试在 healpy.mollview 上使用其他颜色图
我用这段代码成功了
from healpy import mollview
from pylab import arange, show, cm
m = arange(768)
mollview(m, cmap=cm.bwr)
show()
但我得到了意想不到的蓝色背景,我无法将其设置为白色
您看到的不是意外的背景色。您使用的颜色图使绘图中的最低值显示为蓝色。由于你周围的圆形物体似乎为零,因此图中显示为蓝色。尝试使用在零处为白色的 colormap。
healpy
似乎对其默认颜色图进行了修改,以更改颜色超出范围时发生的情况。因此,在将 cm.bwr
赋给 healpy
之前,我们需要做同样的事情。我们可以使用 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()
为了完全模仿 healpy
对其默认颜色图(它使用 jet
)所做的操作,我们需要设置 over
、under
和 bad
值。这是 healpy
github.
中的 relevant function
cmap=cm.bwr
cmap.set_over(cmap(1.0))
cmap.set_under('w')
cmap.set_bad('gray')
更新~/anaconda3/lib/python3.7/site-packages/healpy/projaxes.py
:
将所有 newcm.set_bad("gray")
替换为 newcm.set_bad((1, 1, 1, 1))
。
在下面的示例中,我已将其更新为 newcm.set_bad((0, 0, 0, .9))
以突出其工作原理。
@tmdavison 的回答不适用于自定义规范化功能。但是上面的编辑会。
from healpy import mollview
from pylab import arange, show, cm, Normalize
m = arange(768)
mollview(m, cmap=cm.bwr, norm=Normalize(vmin=0, vmax=768))
show()
我正尝试在 healpy.mollview 上使用其他颜色图 我用这段代码成功了
from healpy import mollview
from pylab import arange, show, cm
m = arange(768)
mollview(m, cmap=cm.bwr)
show()
但我得到了意想不到的蓝色背景,我无法将其设置为白色
您看到的不是意外的背景色。您使用的颜色图使绘图中的最低值显示为蓝色。由于你周围的圆形物体似乎为零,因此图中显示为蓝色。尝试使用在零处为白色的 colormap。
healpy
似乎对其默认颜色图进行了修改,以更改颜色超出范围时发生的情况。因此,在将 cm.bwr
赋给 healpy
之前,我们需要做同样的事情。我们可以使用 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()
为了完全模仿 healpy
对其默认颜色图(它使用 jet
)所做的操作,我们需要设置 over
、under
和 bad
值。这是 healpy
github.
cmap=cm.bwr
cmap.set_over(cmap(1.0))
cmap.set_under('w')
cmap.set_bad('gray')
更新~/anaconda3/lib/python3.7/site-packages/healpy/projaxes.py
:
将所有 newcm.set_bad("gray")
替换为 newcm.set_bad((1, 1, 1, 1))
。
在下面的示例中,我已将其更新为 newcm.set_bad((0, 0, 0, .9))
以突出其工作原理。
@tmdavison 的回答不适用于自定义规范化功能。但是上面的编辑会。
from healpy import mollview
from pylab import arange, show, cm, Normalize
m = arange(768)
mollview(m, cmap=cm.bwr, norm=Normalize(vmin=0, vmax=768))
show()