import matplotlib.pyplot as plt |
import matplotlib.animation as animation |
fig = plt.figure() |
# 创建一个三维的子图对象,设置其位置为1行1列第1个,投影方式为'3d' |
ax = fig.add_subplot( 111 , projection = '3d' ) |
# 绘制一条三维的曲线,颜色为红色,宽度为2 |
line = ax.plot([], [], [], 'r-' , linewidth = 2 )[ 0 ] |
# 定义参数方程中的参数t,从0到10,间隔为0.1 |
t = np.arange( 0 , 10 , 0.1 ) |
# 定义参数方程中的x,y,z分量函数 |
def x(t): |
return np.sin(t) |
def y(t): |
return np.cos(t) |
def z(t): |
return t |
# 定义一个函数来更新每一帧的动画,接受一个参数i表示当前帧数(从0开始) |
def update(i): |
# 获取当前帧数对应的参数t值 |
ti = t[i] |
# 计算当前帧数对应的x,y,z值 |
xi = x(ti) |
yi = y(ti) |
zi = z(ti) |
# 更新线段对象列表中的数据,添加当前帧数对应的点 |
line.set_data([xi], [yi]) |
line.set_3d_properties([zi]) |
# 创建一个动画对象,传入图形对象、更新函数、帧数范围、时间间隔等参数 |
ani = animation.FuncAnimation(fig, update, range ( len (t)), interval = 100 ) |
plt.show() |