直接上代码
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.subplots_adjust(top=1, bottom=0, right=1, left=0, hspace=0, wspace=0)
# 开始坐标 x y x 轴坐标
plt.margins(0, 0, 0)
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
去除了 x y z 轴刻度,背景透明色