2D的简单动画坐标使用matplotlib和pyplot(Simple animation of 2

2019-06-25 04:41发布

我是新来matplotlib。 我有一对XY坐标的列表,我在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()也许只有多一点),这将让我做我想要什么?

我看了看网上很多地方,我面对大多数方法问题存在,我使用python(X,Y)(这是Python版本2.7)在Windows上这一点,并使用过于复杂的模块和库动画这里崩溃。

但是,我能够运行简单的东西像这个例子在matplotlib网站,这是接近我想要的东西,但并不完全。 因此,也许最好的事情将是这个示例的变化,对我的2D数据的情况下(即例子是一维列)的作品。 但是,任何其他建议是值得欢迎的。

Answer 1:

这是改编自动画演示 :

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)

虽然这是简单的文档字符串说,它是缓慢的。



文章来源: Simple animation of 2D coordinates using matplotlib and pyplot