#%matplotlib notebook import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation # 0. 设置中文黑体 plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams["axes.unicode_minus"] = False # 1. 准备正弦曲线数据 x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) # 2. 创建画布和坐标系 fig = plt.figure(tight_layout=True) ax = fig.add_subplot(111) # 3. 绘制正弦曲线 line, = ax.plot(x, y) # 4. 初始化圆点 dot, = ax.plot(x[0], y[0], 'ro') # 5. 动画更新函数 def update_dot(i): dot.set_data(x[i], y[i]) # 6. 创建动画对象 ani = animation.FuncAnimation(fig, update_dot, frames=len(x), interval=50, blit=False) # 7. 保存动画为gif图片 save_path = 'F:\数据可视化' file_name = '动画.gif' ani.save(save_path + file_name, writer='pillow') # 8. 展示图表 plt.show()
- 引入必要的库:
numpy
用于生成数据,matplotlib.pyplot
用于绘制图表,matplotlib.animation
用于创建动画。 - 设置中文字体为黑体,以便在图表中显示中文字符。
- 准备数据:生成一个包含100个点的正弦曲线数据。
- 创建画布和坐标系:创建一个包含单一子图的画布对象。
- 绘制正弦曲线:使用
plot
函数绘制正弦曲线,并将返回的Line2D
对象保存在变量line
中。 - 初始化圆点:使用
plot
函数绘制第一个点,并将返回的Line2D
对象保存在变量dot
中。 - 动画更新函数:定义一个函数
update_dot
,该函数根据当前帧的索引更新圆点的位置。 - 创建动画对象:使用
FuncAnimation
函数创建一个动画对象,指定要更新的图表对象、更新函数、总帧数和帧之间的时间间隔。 - 保存动画为gif图片:将动画对象保存为gif格式的图片文件,保存路径和文件名由变量
save_path
和file_name
指定。 - 展示图表:使用
show
函数展示图表。