簡體   English   中英

Python-繪制軸在密度圖中的縮放

[英]Python - Plot axes descale in density plot

我有這個初始情節。

在此處輸入圖片說明

這是代碼

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')

現在,當繪制密度表示時,我的結果是成功的,這給了我,但是我在軸上的單位已完全更改,但仍然保留了初始圖的形狀。

在此處輸入圖片說明

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模塊運行它們兩個,然后調整兩個數組的大小,以使它們都具有相同的形狀。

這是什么使我的值在我的軸上改變?

我不了解整個序列,但看起來軸的不同之處在於您使用了

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

在第一個示例中,以及

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

在第二。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM