VIS-006【總第14期】Python數據可視化:3D圖繪製函數解析

上一篇文章最後介紹了3D圖,這是一種應用相當廣泛的可視化處理,這裏我們來看看函數中各個參數的意義

from pylab import *
from mpl_toolkits.mplot3d import Axes3D
fig = figure()
ax = Axes3D(fig)
X = np.arange(-4, 4, 0.2)#設置座標範圍及點的密度
Y = np.arange(-4, 4, 0.2)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X ** 2 + Y ** 2)
Z = np.cos(R)
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.hot)#rstride,cstride分別是兩個方向上點格的密度
ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=cm.hot)#xOy平面的填充,offset=-2表示填充層在z=-2的位置
ax.set_zlim(-2, 2)#z軸的範圍

這樣子的代碼畫出來是這樣的:

我們將第九行代碼換爲:Z=np.sin(R)

輸出圖形如下:


將倒數第二行代碼去掉,表示不要底層的填充:


這樣我們能夠將xOy平面的點格看得更加清楚

修改倒數第三行代碼(rstride):ax.plot_surface(X, Y, Z, rstride=3, cstride=1, cmap=cm.hot)


可以看出x軸方向的網格密度方式了變化

一般我們需要的是正方形網格,我們可以同時修改兩個參數:

ax.plot_surface(X, Y, Z, rstride=3, cstride=3, cmap=cm.hot)


如果把cmap去掉呢?


可以看到,這裏的cm.hot便是我們最常用的熱圖了

希望本期的講解能夠讓大家對於3D的繪圖有更深的瞭解



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章