2017-05-04 72 views
0

我想打一個2D表面曲線圖,應該看起來像這樣 enter image description here如何繪製漸變圖形與3軸

for i in range(26): 
    for u in range(11,102): 
    line=linecache.getline("C:/Users/USER/Desktop/iteration/" + file_name[i],u) 
    line=np.array(line.split()) 
    z.append(float(line[2])) 
    vmr.append(float(line[3])) 
x=np.linspace(4,6,num=3458) 
y=np.array(z) 
z=np.array(vmr) 
xi, yi = np.linspace(x.min(), x.max(), 100), np.linspace(y.min(), y.max(), 
100) 
xi, yi = np.meshgrid(xi, yi) 
# Interpolate 
zi = scipy.interpolate.griddata((x, y), z, (xi, yi), method='linear') 

plt.imshow(zi, vmin=z.min(), vmax=z.max(), origin='lower', 
     extent=[x.min(), x.max(), y.min(), y.max()]) 

plt.scatter(x, y, c=z) 
plt.colorbar() 
plt.show() 

我使用上面的代碼的情節是:

enter image description here

我應該嘗試Python以外的其他語言/軟件??? 我對此是新的,任何幫助將不勝感激 謝謝

+0

太感謝你了....它的工作 – caty

回答

1

這個問題似乎是圖像繪圖有兩個非常不同的尺寸軸。由於imshow有每一個默認的相同的方面,你可能會像你在問題中顯示出一個結果。

這一個簡單的方法是擰鬆等方面比約束:

plt.imshow(...., aspect="auto") 
+0

我還有一個問題,我所得到的是一個散點圖,可能是由於命令「plt.scatter()」,我可以用別的東西,使我得到上述謝謝 – caty

+0

請記住,我沒有你的數據,因此不具有連續的梯度情節更換知道的任何機會,你的情節貌似comparisson到所希望的描繪。 – ImportanceOfBeingErnest