Python Hexbin边缘偏移图像产生

时间:2013-07-31 23:28:12

标签: python matplotlib plot histogram offset

我有一个希望简单的问题。当在某些空间数据上使用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()

The counts image produced by hexbin

- 根据我的要求添加数据以进行测试.....我的数据相当冗长且难以处理,但这里有一个独立的版本来说明问题。这是来自' 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方向上偏移,积分应该只在一个方向上,而不是在另一个变量上,即行和列。从理论上讲,我希望每一行和每一行都有一个边缘,我有数据。

marginals from new code image

0 个答案:

没有答案