我正在尝试创建一个动画图形来显示多个数以万计的数据点,随着时间的推移出现在一个图形中。如果不告诉它每帧重绘所有内容,使用blit=True避免重绘每一帧的所有内容是行不通的——我只想绘制新的数据点。
python matplotlib都没有从函数更新散点图或如何为散点图设置动画?回答这个问题,因为我想添加新艺术家,而不仅仅是用 更新现有艺术家,set_offsets这会强制重绘每个点。文档说它确实支持新艺术家:
func必须返回所有被修改或创建的艺术家的迭代
我在 macOS 10.13和RHEL7 上运行 matplotlib 3.1.1 - MacOSX 后端对我来说根本无法使用blitting,因此在该系统上手动选择 TkAgg:
import matplotlib
matplotlib.use("TkAgg") # On macOS
import matplotlib.animation as animation
import matplotlib.pyplot as plt
def animate(n):
scatter = ax1.scatter([n], [n])
return [scatter]
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.set_xlim(0, 20)
ax1.set_ylim(0, 20)
ani = animation.FuncAnimation(fig, animate, interval=100, blit=True)
plt.show()
如何使用 blitting 写入新数据点而不绘制每一帧的所有内容?
