直接上代码:

import numpy as np
import matplotlib.pyplot as plt
# 导入显示3D的库
from mpl_toolkits.mplot3d import Axes3D

# 定义一个图片
fig = plt.figure()
# 对此图片增加一个维度,使其成为3D图像
ax = Axes3D(fig)

# 定义X,Y值
X = np.arange(-4, 4, 0.25)
Y = np.arange(-4, 4, 0.25)
# 把X,Y坐标网格化
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X ** 2 + Y ** 2)
# 设置高度值
Z = np.sin(R)

# 把X,Y,Z的数据在图片中显示,rstride(Row Stride):行跨度,cstride(Column Stride):列跨度,增加此值会增加跨度。cmap(Color Map):颜色映射表,rainbow为彩虹颜色
ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap="rainbow")
plt.show()

显示图为:
matplotlib 3D数据-【老鱼学matplotlib】

我们还想在这个图中增加等高线图:

# 显示等高线图
ax.contourf(X, Y, Z, offset=-2, cmap="rainbow", zdir='z')
ax.set_zlim(-2, 2)

这时显示为:
matplotlib 3D数据-【老鱼学matplotlib】

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-14
  • 2021-09-02
  • 2021-09-28
  • 2021-10-04
  • 2021-11-14
  • 2021-07-22
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-16
  • 2022-12-23
  • 2021-10-04
  • 2021-08-01
  • 2022-12-23
相关资源
相似解决方案