gpt4 book ai didi

python - 使用 matplotlib 和 pyplot 的二维坐标的简单动画

转载 作者:太空狗 更新时间:2023-10-29 21:40:39 26 4
gpt4 key购买 nike

我是 matplotlib 的新手。我有一个 x-y 坐标列表,我在 python 中更新它并想使用 matplotlib 的 pyplot 制作动画。我想提前指定 x 范围和 y 范围。以下是我当前的代码:

import matplotlib.pyplot as plt
x=[1,2,3,4]
y=[5,6,7,8]
for t in range(100):
#lists x and y get updated here
#...
plt.plot(x, y, marker='o', linestyle='None')
plt.show()

如您所见,我在迭代循环结束时使用 plt.plot()plt.show() 来仅绘制最终坐标。但我想将此步骤放在内部循环中,并在每次迭代时绘制一个指定的暂停时间,以便在循环运行时有一个动画。

只是将该语句移动到循环内或对其进行调整是行不通的。不过,我想保持它非常简单,并且不想使用 matplotlib.animation。是否有一些简单的方法可以让我做我想做的事情而不使用更多的模块和库(只有 plt.pause() 之类的东西,也许只有一点点)?

我在网上看了很多地方,我遇到的大多数方法的问题是我在 Windows 上使用 python(x,y)(这是 python 版本 2.7),使用过于复杂的模块和库的动画是在这里崩溃。

但是,我能够运行像 this example 这样简单的东西在 matplotlib 网站上,它接近我想要的,但不完全是。因此,也许最好的办法是修改适用于我的二维数据的示例(该示例适用于一维行)。但欢迎任何其他建议。

最佳答案

这改编自 animation demo :

import matplotlib.pyplot as plt 
import numpy as np

fig, ax = plt.subplots()

x = [1, 2, 3, 4]
y = [5, 6, 7, 8]

for t in range(10):
if t == 0:
points, = ax.plot(x, y, marker='o', linestyle='None')
ax.set_xlim(0, 10)
ax.set_ylim(0, 10)
else:
new_x = np.random.randint(10, size=5)
new_y = np.random.randint(10, size=5)
points.set_data(new_x, new_y)
plt.pause(0.5)

虽然这很简单,但文档字符串说它很慢。

关于python - 使用 matplotlib 和 pyplot 的二维坐标的简单动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10896054/

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