1

ヘキサグラム ビニング データがあり、C=vel を使用して速度別に色分けします。これは問題なく動作しますが、計算された標準偏差のリストと各ヘキサグラムのオブジェクト数のリストが必要です。私が使う:

imageh=plt.hexbin(x,y,C=vel,extent[np.min(x),np.max(x),np.min(y),np.max(y)],alpha=0.7,gridsize=20,cmap=get_cmap("jet"),reduce_C_function=np.std,mincnt=5)
cbar=plt.colorbar(imageh,extend='max')

「reduce_C_function=np.std」は、各ヘキサグラムの速度 (vel) の標準偏差を提供します。これは私が望むものですが、ベクトルを画面に出力することも必要です。座標 x と y は次の方法で取得できます。

bv=imageh.get_paths()
for j in xrange(len(bv)):
    xav=np.mean(bv[j].vertices[0:6,0])
    yav=np.mean(bv[j].vertices[0:6,1])

get_array と get_offset を使用して、各六角形のアイテムの数を取得できると考えました。

counts=imageh.get_array() 
verts=imageh.get_offsets() 

しかし、私の get_offsets() は空のベクトルを作成し、get_array() は六角形ごとの平均速度値を返しているようです..私の速度値「vel」は 5513 項目の長さで、counts=imageh.get_array() は 146 の値を返します私の速度と同じ範囲。念のため再度 3 回実行したところ、3 回目の試行で get_array() は標準偏差の範囲内で 146 個の値を返しました。これが本当なら、問題の一部は解決するでしょう。

私が欲しいのは、計算された速度の標準偏差です...画像のカラーバーで使用される「reduce_C_function」の出力です。また、各ヘキサグラムで見つかった数字も必要です。目標は、各ヘキサグラムの各標準偏差を取得し、そのヘキサグラムのポイント数で割り、加重標準偏差を作成することです。実行することで個別に取得できる生の画像からのヘキサグラムのポイント数:

imageh=plt.hexbin(x,y,extent[np.min(x),np.max(x),np.min(y),np.max(y)],alpha=0.7,gridsize=20,cmap=get_cmap("jet"),mincnt=5)

次にget_array()を使用しますが、元のステートメントから各hexbinのアイテム数を取得する方法があると確信していましたか? さらに、追加の複雑さとして、速度に np.mean フィルターを含めると、ポイントとビンの数がわずかに異なります (最初の例)。したがって、各ヘキサグラムの数をクエリから直接選択するのが最適です。

4

0 に答える 0