2

うまくいけば簡単な質問があります。いくつかの空間データ (Ra と Dec は x と y) で python hexbin プロット オプションを使用する場合、側面の辺縁も見たいと思います。幸いなことに、単純なオプション「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()

hexbin によって生成されたカウント画像

-- テストするデータを追加するという要求ごとに.....私のデータはかなり長くて扱いにくいですが、問題を説明するスタンドアロン バージョンを次に示します。これは、別の hexbin の質問に関して投稿した「Hooked」からの変更バージョンです。

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 方向にオフセットされており、積分は他の変数 (行と列) に対して 1 方向だけになるはずです。理論的には、データがあるすべての行と列の側に限界があると予想されます。

新しいコード イメージからのマージン

4

0 に答える 0