python 畫 3D 圖
阿新 • • 發佈:2021-06-10
直接上程式碼
fig = plt.figure(figsize=(19.2, 14.4)) ax = fig.add_axes([0, 0, 1, 1], projection='3d') ax.set_zlim(bottom=0) # 有這個可以把多個圖層的上下間隔弄的更大,相當於自己從新設定 z 軸數值大小間隔,沒有這步它會自動設定上下壓縮很小 # 去除 x y z 軸的背景顏色 ax.w_xaxis.set_pane_color((1.0, 1.0, 1.0, 1.0)) ax.w_yaxis.set_pane_color((1.0, 1.0, 1.0, 1.0)) ax.w_zaxis.set_pane_color((1.0, 1.0, 1.0, 1.0)) # 3D 曲面圖 二維資料 ax.plot_surface(lon1, lat1, glb30_wind, cmap=cmocean.cm.balance) # 線圖 二維資料 ax.contour(lon1, lat1, glb30_wind, zdir='z', offset=-1.5, cmap=cmocean.cm.balance) # 面圖 二維資料 plt.contourf(lon1, lat1, glb30_wind, zdir='z', offset=6, cmap=cmocean.cm.balance)# plt.contourf(lon1, lat1, glb0_wind, zdir='z', offset=3, cmap=cmocean.cm.balance) # 面圖 一維資料 plt.tricontourf(lon, lat, cns0_wind, zdir='z', offset=0.7, cmap=cmocean.cm.balance) sss = plt.tricontourf(lon, lat, cns1_wind, zdir='z', offset=-1, cmap=cmocean.cm.balance) # 設定設卡 m = cm.ScalarMappable(cmap=cmocean.cm.balance) m.set_array(np.arange(0,3.5, 0.2)) # 新增色卡 1 色卡 大小 主圖和色卡的間距 cb = plt.colorbar(m, shrink=0.8) # pad=0.1
# 新增設卡 2 可以直接對映畫圖函式的返回值 ax 引數 可以指色卡顯示在哪個子圖上 例如 ax=ax ax=[ax[0], ax[1]] 也可以共用一個色卡
cb = plt.colorbar(sss, shrink=0.8)
# 設定色卡 顏色數值大小 cb.ax.tick_params(colors='gray', labelsize=30) # 設定z軸的維度,x,y類似 ax.set_zticks(np.linspace(0, 5, 6)) # 去除 x y z 軸的背景網格 ax.grid(False) # 去掉座標軸的線 plt.axis('off') # 設定軸上的 字型顏色 大小 ax.tick_params(axis='x', colors='gray', labelsize=30) ax.tick_params(axis='y', colors='gray', labelsize=30) ax.tick_params(axis='z', colors='gray', labelsize=30) # elev仰角 越大越向下 越小越向上 azim方位角 越大越向右 越小越向左 ax.view_init(elev=21, azim=-70) plt.show()
參考地址
畫 3D 圖
https://my.oschina.net/u/3225759/blog/4373938
設定 色卡
https://www.jianshu.com/p/d97c1d2e274f
畫色斑圖 裁切 shape 地圖
https://blog.csdn.net/qq_39425958/article/details/104790575