Demo.py
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D#3D 坐标轴显示
#要先定义一个图像窗口,在窗口上添加3D坐标轴
# 定义figure
fig = plt.figure()
# 将figure变为3d
ax = Axes3D(fig)
#接下来给进 X 和 Y 值,并将 X 和 Y 编织成栅格。
#每一个(X, Y)点对应的高度值我们用下面这个函数来计算。
# 数据数目
# 定义x, y
x = np.arange(-4, 4, 0.25)
y = np.arange(-4, 4, 0.25)
# 生成网格数据
X, Y = np.meshgrid(x, y)
# 计算每个点对的长度
R = np.sqrt(X ** 2 + Y ** 2)
# 计算Z轴的高度
Z = np.sin(R)
# 绘制3D曲面
#rstride 和 cstride 分别代表 row 和 column 的跨度。
#cmap = plt.get_cmap('rainbow')填充颜色
ax.plot_surface(X, Y, Z, rstride =5, cstride =5, cmap = plt.get_cmap('rainbow'))
# 绘制从3D曲面到底部的投影
ax.contourf(X, Y, Z, zdir='x', offset=-2, cmap=plt.get_cmap('rainbow'))
#如果 zdir 选择了x,那么效果将会是对于 XZ 平面的投影
# 设置z轴的维度
ax.set_zlim(-2, 2)
plt.show()
结果:
跨度为1, zdim = 'z':
跨度为5, zdim = 'x':