这很奇怪,希望有人可以帮助我。我正在尝试使用matplotlib热图绘制数据的密度图,但是我的数据以某种奇怪的方式被反转/旋转。我有一个散点图,然后将这些点归类为密度,但是图像根本不应该显示出来。例如,这是原始散点图,其方向正确:
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS82RFVHUy5qcGcifQ==” alt =“原始散点图”>“>
然后是我的热图(请注意,该结构从上方逆时针旋转了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来说还很陌生,所以解释的术语越少,我越有可能能够很好地利用它。谢谢大家的帮助。
这很奇怪,希望有人可以帮助我。我正在尝试使用matplotlib热图绘制数据的密度图,但是我的数据以某种奇怪的方式被反转/旋转。我有一个...
您的问题似乎与np.histogram2d
的工作方式有关。从documentation:
请注意,直方图不遵循笛卡尔约定,其中x