簡體   English   中英

Python:圖的插值矩陣

[英]Python: interpolate matrix for figure

我有以下矩陣R:

R
array([[ 0.014985  ,  0.01499475,  0.01508112,  0.01588764,  0.02019902, 0.03698812,  0.12376358],
       [ 0.547997  ,  0.00300703,  0.00306113,  0.00361317,  0.23311141, 0.41010791,  0.65683355],
       [ 0.7739985 ,  0.48050374,  0.00157832,  0.32448644,  0.61655571,  0.70505395,  0.82841677],
       [ 0.9547997 ,  0.89610075,  0.75911978,  0.86489729,  0.92331114, 0.94101079,  0.96568335],
       [ 0.97739985,  0.94805037,  0.87955989,  0.93244864,  0.96165557, 0.9705054 ,  0.98284168]])

這是一個5x7的矩陣,其中的行對應於:

tc = [100,500,1000,5000,10000]

而列如下:

y = [0,.00001, .0001, .001, .01, 0.1,  1]

如果將R繪制為pcolor圖像, pcolor得到:

z_min, z_max = -np.abs(R).max(), np.abs(R).max()
fig,ax = plt.subplots(figsize=(10,7.5))
ax.pcolor(R,cmap='RdBu',vmin=z_min, vmax=z_max)

在此處輸入圖片說明

我想對矩陣進行插值以獲得更詳細的圖像:

xnew,ynew = np.mgrid[0:1:1000j,0:1000:1000j]
tck = interpolate.bisplrep(tc,y,R,s=0, kx=1, ky=1)

我收到以下錯誤:

TypeError: len(x)==len(y)==len(z) must hold.

我想知道一種在tc = [100,500,1000,5000,10000]y = [0,.00001, .0001, .001, .01, 0.1, 1] tc = [100,500,1000,5000,10000] y = [0,.00001, .0001, .001, .01, 0.1, 1] tc = [100,500,1000,5000,10000]的情況下正確插值矩陣R的方法

從scipy.ndimage.interpolation使用縮放

您可以增加“縮放”,直到足夠好

from scipy.ndimage.interpolation import zoom

plt.pcolor(R,cmap='RdBu')
plt.show()

R2 = zoom(R,2)
plt.pcolor(R2,cmap='RdBu')
plt.show()

R5 = zoom(R,5)
plt.pcolor(R5,cmap='RdBu')
plt.show()

R10 = zoom(R,10)
plt.pcolor(R10,cmap='RdBu')
plt.show()

您還可以使用不同的插值方法,請參見函數的文檔

1

2

4

10

暫無
暫無

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

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