1. 程式人生 > 其它 >python 畫 3D 圖

python 畫 3D 圖

直接上程式碼

    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