2016-04-10 39 views
0

私はこの初期プロットを持っています。ここでPython - プロットの軸の密度のプロットdescale

enter image description here

このためのコードである、濃度表現をプロットするとき

x = subhalos['SubhaloVelDisp'] 
y = (subhalos['SubhaloBHMass'] * 1e10/0.704) # in units of M_sol h^-1 

logx = np.log(x) 
logy = np.log(y) 

plt.plot(logx, logy, '.') 

plt.ylabel('$\log(M_{BH}$/M$_{\odot}$)') 
plt.xlabel(' $\log(\sigma_{1D}$/km s$^{-1}$)') 
plt.title('$M_{BH}-\sigma$ relation') 

は今、私の結果は私にこれを与えて、成功しているが、私の座標軸上の私のユニットは完全に変更されています、まだそれは最初のプロットから形状を保持しています。

enter image description here

x = subhalos['SubhaloVelDisp'] 
y = subhalos['SubhaloBHMass'] * 1e10/0.704 # in units of M_sol h^-1 


X = np.log10(x) 
Y = np.log10(y) 

x1 = X[np.isfinite(X)] 
y1 = Y[np.isfinite(Y)] 

x1.resize(y1.shape) 

xy = np.vstack([x1,y1]) 
z = stats.gaussian_kde(xy)(xy) 

idx = z.argsort() 
x,y,z = x1[idx],y1[idx],z[idx] 

fig, ax = plt.subplots() 
ax.scatter(X,Y,c=z, s=25, edgecolor='') 
plt.ylabel('$\log(M_{BH}$/M$_{\odot}$)') 
plt.xlabel(' $\log(\sigma_{1D}$/km s$^{-1}$)') 
plt.title('$M_{BH}-\sigma$ relation') 

キーの事は、ログ形式で二つの配列xyを渡すとき、私は配列内のNaN値を取得することです。私はその後np.isfiniteモジュールを介してそれらの両方を実行し、私は両方の同じ形状になるように両方の配列のサイズを変更します。

私の値が私の軸上で変わるのはここですか?

答えて

1

私は、全体のシーケンスを理解していないが、軸の違いは、あなたが最初の例では

logx = np.log(x) 
logy = np.log(y) 

、第二中

X = np.log10(x) 
Y = np.log10(y) 

を使用したことであるように見えます。

関連する問題