これは奇妙なものです。誰かが私を助けてくれることを願っています。matplotlib ヒートマップを使用してデータの密度プロットを実行しようとしていますが、どういうわけか、データが奇妙な方法で反転/回転しています。私は散布図を持っていて、密度のためにそれらのポイントをビニングしていますが、画像はまったく出てくるはずのものではありません。たとえば、正しい向きの元の散布図を次に示します。
次に、これが私のヒートマップです (構造が上から反時計回りに 90 度回転していることに注意してください。ただし、軸のデータは正しいことに注意してください...軸の数値はデータから自動的に生成されるため、軸を逆にするだけで画像が表示されます正しいが、数字はすべてオフです):
データ解析ルーチンは、散布図を生成したときと同じであるため、これがどのようになるかわかりません。ヒートマップ プロットがコード化されている方法である必要があると思いますが、内訳がどこにあるのかわかりません。ヒートマップの組み込みの原点配置(左上隅)を考慮してみましたが、解決しません。コードは次のとおりです (最初にすべてのデータを解析します)。
import numpy as np
from numpy import ndarray
import matplotlib.pyplot as plt
import matplotlib
import atpy
from pylab import *
twomass = atpy.Table()
twomass.read('/Raw_Data/IRSA_downloads/2MASS_GCbox2.tbl')
hmag = list([twomass['h_m']])
jmag = list([twomass['j_m']])
hmag = np.array(hmag)
jmag = np.array(jmag)
colorjh = np.array(jmag - hmag)
idx_c = (colorjh > -1) & (colorjh < 6) #manipulate desired color quantities here
idx_h = (hmag > 8) & (hmag < 18)
idx = idx_c & idx_h
ヒートマップのコードは次のとおりです。
heatmap, xedges, yedges = np.histogram2d(colorjh[idx], hmag[idx], bins=500)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
plt.clf()
plt.imshow(heatmap, extent=extent)
plt.xlabel('Color(J-H)', fontsize=15) #adjust axis labels here
plt.ylabel('Magnitude (H)', fontsize=15)
plt.gca().invert_yaxis()
plt.legend(loc=2)
plt.title('CMD for Galactic Center (2MASS)', fontsize=20)
plt.grid(True)
plt.show()
私は Python にかなり慣れていないので、説明の専門用語が少ないほど、Python をうまく活用できる可能性が高くなります。皆様のご協力に感謝いたします。