4

Healpy.mollview で他のカラーマップを使用しようとしています このコードで成功しました

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

しかし、予期しない青い背景が表示され、それを白に設定する方法がありません

4

3 に答える 3

7

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を設定する必要があります。githubの関連する関数を次に示します。overunderbadhealpy

cmap=cm.bwr
cmap.set_over(cmap(1.0))
cmap.set_under('w')
cmap.set_bad('gray')
于 2015-12-01T16:17:01.337 に答える
0

更新~/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()

ここに画像の説明を入力

于 2019-10-25T00:26:08.087 に答える
0

あなたが見ているのは、予想外の背景色ではありません。使用するカラーマップにより、プロットの最小値が青く表示されます。あなたの周りの丸いものはゼロに見えるので、これは図では青く見えます。ゼロで白のカラーマップを使用してみてください。

于 2015-12-01T15:42:07.817 に答える