環境
OS: Mac
エディタ: atom
言語: Python
Numpy以外のモジュールは使い慣れていません。。
実現したいこと
FitファイルのデータをPythonで読み込み、matplotlibでカラーマップを作成したいです(今回用いているFitファイルは'a.fit'という名前です)。
該当のソースコード
Python
1import astropy.io.fits as iofits 2import matplotlib.pyplot as plt 3import numpy as np 4 5list = iofits.open("a.fit") #a.fitは1×301×301の3次元配列(実質2次元) 6hdu = list[0] 7data = np.array([hdu.data]) 8header = hdu.header 9re = data.reshape(1*301, 301) #1×301×301の3次元配列を、301×301の2次元配列に変換 10 11plt.imshow(re, cmap='nipy_spectral', vmin=5e+12, vmax=2e+14) 12plt.colorbar() 13plt.savefig('a.png', dpi=200) #画像保存
実現したいこと
カラーマップは上のコードで作成できましたが、もし可能なら、
ある値よりも大きい(または小さい)メッシュについて、白色で描画したいと考えています。
Python
1plt.imshow(re, cmap='nipy_spectral', vmin=5e+12, vmax=2e+14)
今回、're'というデータの値を5e+12から2e+14の範囲についてカラーマップで描画しましたが、
カラーマップのパラメータをcmap='nipy_spectral'としたことで、nipy_spectralのデフォルトで範囲外の値となるメッシュが灰色で描画されてしまいます。
(カラーバーを見ると、2e+14以上は灰色になっています)
そこで、'cmap.set_under('white')'や'cmap.set_over('white')'を使って範囲外の値となるメッシュの色を灰色→白色に変えたいのですが、
name 'cmap' is not defined
と出てきて、上手くいきませんでした。
どこを訂正すればよいでしょうか、教えていただきたいです。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。