gpt4 book ai didi

python - 如何绘制点队列?

转载 作者:行者123 更新时间:2023-12-01 05:51:35 24 4
gpt4 key购买 nike

我有以下代码。

import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
plt.ion()
plt.show()

mapping = defaultdict(partial(deque, maxlen=10))

我的映射结构包含一个具有 x、y、z 值的队列。我只想绘制队列中的点,因此当队列发生变化时,绘图也应该发生变化。我该怎么做?

注意:这具有挑战性,因为队列的大小是有限的,并且绘图必须仅反射(reflect)队列中的内容。

最佳答案

执行此操作的黑客方法是:

ln, = ax.plot(x,y,z)
# some code that updates the x,y,z values -> new_x,new_y,new_z
ln.remove
ln, = ax.plot(new_x,new_y,new_z)
plt.draw()

删除包含旧数据的行并添加包含新数据的行。

如果您愿意编写依赖于 matplotlib 内部的代码(这是一个坏主意,因为内部可能会在您的控制下发生变化),您也可以通过以下方式执行此操作:

ln._verts3d = new_x,new_y,new_z

在此处添加补丁以添加执行此操作的函数:https://github.com/matplotlib/matplotlib/pull/1629

animation模块很好地封装了制作动画所需的许多内容(包括将输出直接流式传输到 ffmpeg 的方法),并且有一个非常好的 tutorial .

Line3D docs , Line2D docs

关于python - 如何绘制点队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14095157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com