直接上代码
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
去除了 x y z 轴刻度,背景透明色