我试图编写一个简单的脚本,它为每个时间步更新散点图t
。我想尽可能简单地做到这一点。但它所做的只是打开一个我什么都看不到的窗口。窗户刚刚冻结。这可能只是一个小错误,但我找不到它。Python Matplotlib更新散点图
的该data.dat
的格式
x y
Timestep 1 1 2
3 1
Timestep 2 6 3
2 1
(该文件仅包含数字)
import numpy as np
import matplotlib.pyplot as plt
import time
# Load particle positioins
with open('//home//user//data.dat', 'r') as fp:
particles = []
for line in fp:
line = line.split()
if line:
line = [float(i) for i in line]
particles.append(line)
T = 100
numbParticles = 2
x, y = np.array([]), np.array([])
plt.ion()
plt.figure()
plt.scatter(x,y)
for t in range(T):
plt.clf()
for k in range(numbP):
x = np.append(x, particles[numbParticles*t+k][0])
y = np.append(y, particles[numbParticles*t+k][1])
plt.scatter(x,y)
plt.draw()
time.sleep(1)
x, y = np.array([]), np.array([])
我不需要循环吗?我没有看到我每次通过我的数字清单的位置。你能解释一下吗? – Samuel
循环驻留在对['FuncAnimation()'](http://matplotlib.org/api/animation_api.html#matplotlib.animation.FuncAnimation)的调用中。对于每个时间步(这里是每1000毫秒),函数'update'被调用一个递增的值'i'。 – ImportanceOfBeingErnest
@ImportanceOfBeingErnest我不明白'i'在哪里增加。我期望像'i = i + 1'这样的东西。 – Samuel