我有一个希望简单的问题。当在某些空间数据上使用python hexbin plot选项时(Ra和Dec是x和y)我也希望看到边缘的边缘。令人高兴的是,有一个简单的选项' marginals = True' ....
不幸的是,正如您在下面看到的那样...... x轴边缘明显偏离六边形产生的图像。我已经尝试调整参数但是x轴上的边缘总是出现偏移到图像(并且y中似乎没有问题),任何想法都会受到赞赏。请参阅下面的代码和图片,提前致谢!
fig5=plt.figure(5)
ax=fig5.add_subplot(111)
imageh=plt.hexbin(Radeg[CoreL],
Decdeg[CoreL],
extent=[np.min(Radeg[CoreL]), np.max(Radeg[CoreL]), np.min(Decdeg[CoreL]), np.max(Decdeg[CoreL])],
alpha=0.7,
gridsize=20,
marginals=True,
vmin=5,
vmax=105,
cmap=get_cmap("jet"),
mincnt=5)
ax.axis([305,275,-40,-25])
cbar=plt.colorbar(imageh,extend='max')
cbar.set_label(r'$\mathrm{Counts}$',fontsize=18)
ax.set_xlabel(r'$\mathrm{RA}$',fontsize=20)
ax.set_ylabel(r'$\mathrm{DEC}$',fontsize=18)
plt.show()
- 根据我的要求添加数据以进行测试.....我的数据相当冗长且难以处理,但这里有一个独立的版本来说明问题。这是来自' Hooked'谁发表了关于不同的hexbin问题。
def generate_data(n):
"""Make random, correlated x & y arrays"""
points = np.random.multivariate_normal(mean=(0,0),
cov=[[0.4,9],[9,10]],size=int(n))
return points
if __name__ =='__main__':
color_map = plt.cm.Spectral_r
n = 1e4
points = generate_data(n)
xbnds = np.array([-20.0,20.0])
ybnds = np.array([-20.0,20.0])
extent = [xbnds[0],xbnds[1],ybnds[0],ybnds[1]]
fig=plt.figure(figsize=(10,9))
ax = fig.add_subplot(111)
x, y = points.T
image = plt.hexbin(x,y,cmap=color_map,gridsize=20,marginals=True,extent=extent,mincnt=1,bins='log')
ax.set_xlim(xbnds)
ax.set_ylim(ybnds)
plt.grid(True)
cb = plt.colorbar(image,spacing='uniform',extend='max')
plt.show()
此代码给出了类似的图像,但这次边缘在x和y方向上偏移,积分应该只在一个方向上,而不是在另一个变量上,即行和列。从理论上讲,我希望每一行和每一行都有一个边缘,我有数据。