原文链接: python matplot 动态绘图
上一篇: python struct 模块 字节数组 浮点数 相互转换
下一篇: dting 手环 数据 获取 可视化
参考
https://zhuanlan.zhihu.com/p/31323002
https://github.com/xianhu/LearnPython/blob/master/python_visual_animation.py
效果
完整代码,通过不断刷新达到绘制动画的效果
import matplotlib.pyplot as plt
import numpy as np
# 解决中文乱码问题
# import matplotlib.font_manager as fm
# myfont = fm.FontProperties(fname="Songti.ttc", size=14)
# matplotlib.rcParams["axes.unicode_minus"] = False
# 主要api
# plt.ion():打开交互模式
# plt.ioff():关闭交互模式
# plt.clf():清除当前的Figure对象
# plt.cla():清除当前的Axes对象
# plt.pause():暂停功能
def simple_plot():
# 生成画布
plt.figure(figsize=(8, 6), dpi=80)
# 打开交互模式
plt.ion()
# 循环
for index in range(100):
# 清除原有图像
plt.cla()
# 设定标题等
plt.title("sin cos")
plt.grid(True)
# 生成测试数据
x = np.linspace(-np.pi + 0.1 * index, np.pi + 0.1 * index, 256, endpoint=True)
y_cos, y_sin = np.cos(x), np.sin(x)
# 设置X轴
plt.xlabel("X")
plt.xlim(-4 + 0.1 * index, 4 + 0.1 * index)
plt.xticks(np.linspace(-4 + 0.1 * index, 4 + 0.1 * index, 9, endpoint=True))
# 设置Y轴
plt.ylabel("Y")
plt.ylim(-1.0, 1.0)
plt.yticks(np.linspace(-1, 1, 9, endpoint=True))
# 画两条曲线
plt.plot(x, y_cos, "b--", linewidth=2.0, label="cos")
plt.plot(x, y_sin, "g-", linewidth=2.0, label="sin")
# 设置图例位置,loc可以为[upper, lower, left, right, center]
plt.legend(loc="upper left", shadow=True)
# 暂停
plt.pause(0.1)
# 关闭交互模式
plt.ioff()
# 图形显示
plt.show()
return
simple_plot()