私は天体の画像を上に(自動的に同じx軸の長さで)カラーバーを表示する関数を書こうとしています。 私は問題を抱えています。なぜなら、ティックを上に置くと何もしません...それはカラーバーの底に目盛りをつけます(そしてコロバーのy軸の目盛も) 。 X軸のWCS座標に問題があると思います。なぜなら、投影せずにそれを実行しようとするとうまくいくからです!MatplotlibのカラーバーとWCS投影
import numpy as np
import matplotlib.pyplot as plt
from astropy import wcs
from matplotlib.colors import PowerNorm
from mpl_toolkits.axes_grid1 import make_axes_locatable
from matplotlib import cm
#WCS coordinate system
w = wcs.WCS(naxis=2)
w.wcs.crpix = [23.5, 23.5]
w.wcs.cdelt = np.array([-0.0035, 0.0035])
w.wcs.crval = [266.8451, -28.151658]
w.wcs.ctype = ["RA---TAN", "DEC--TAN"]
w.wcs.set_pv([(2, 1, 45.0)])
#generate an array as image test
data = (np.arange(10000).reshape((100,100)))
#display image
fig = plt.figure()
ax = plt.gca(projection=w)
graf = ax.imshow(data, origin='lower', cmap=cm.viridis, norm=PowerNorm(1))
#colorbar
divider = make_axes_locatable(ax)
cax = divider.append_axes("top", size="5%")
cbar = fig.colorbar(graf, cax=cax, orientation='horizontal')
cax.xaxis.set_ticks_position('top')
fig.show()
ありがとうございます!
を、我々はそれを実行できない場合は、コードのこの大きなブロックは、むしろ無用です。他の人が(少なくともあなたの現在のコードで可能な範囲で)実行できるように編集して、結果の画像または停止するエラーを確認してください。 – Gabriel
これを短くするには:[mcve]を読んで質問を編集してください。 – ImportanceOfBeingErnest
申し訳ありません私はコードを編集しました、今検証可能です! – Mikifiori