在python中实时制作动画和处理csv数据
因此,我正在用Python编写一个程序,跟踪玩家的移动。我有一个大的CSV文件中的x和y坐标。我必须一次处理11排,因为每边有5名球员加上球。我试图做的是从CSV文件中读取坐标,然后使用它们来呈现游戏的实时动画(玩家在球场上移动时的点)。现在我真的很难显示这些点。我不确定是否应该使用matplotlib.animation.FunCanimation函数,因为我需要进一步处理这些数据,我甚至不确定如何正确使用它,因为我是Python新手 这就是我循环使用CSV文件并准备数据的方式。我查看正在播放的ID,在字典中找到正确的ID,并将它们添加到列表中。这部分工作正常在python中实时制作动画和处理csv数据,python,csv,animation,matplotlib-animation,Python,Csv,Animation,Matplotlib Animation,因此,我正在用Python编写一个程序,跟踪玩家的移动。我有一个大的CSV文件中的x和y坐标。我必须一次处理11排,因为每边有5名球员加上球。我试图做的是从CSV文件中读取坐标,然后使用它们来呈现游戏的实时动画(玩家在球场上移动时的点)。现在我真的很难显示这些点。我不确定是否应该使用matplotlib.animation.FunCanimation函数,因为我需要进一步处理这些数据,我甚至不确定如何正确使用它,因为我是Python新手 这就是我循环使用CSV文件并准备数据的方式。我查看正在播放
home = []
away = []
ball = (0, 0, 0)
with open(path, "r") as csv_file:
reader = csv.DictReader(csv_file)
line_count = 0
for moment in reader:
if line_count == 11:
show(home, away, ball)
home.clear()
visitor.clear()
line_count = 0
if int(moment["player_id"]) == -1 and int(moment["team_id"]) == -1:
ball = (float(moment["x_loc"]), float(moment["y_loc"]), float(moment["radius"]))
if int(moment["team_id"]) == domaci_id:
player = home_team.get(int(moment["player_id"]))
player.set(float(moment["x_loc"]), float(moment["y_loc"]))
home.append(player)
if int(moment["team_id"]) == gosti_id:
player = visitor_team.get(int(moment["player_id"]))
player.set(float(moment["x_loc"]), float(moment["y_loc"]))
visitor.append(player)
linecount += 1
一开始我用这个画球场
plt.figure(figsize=(12, 11))
draw_court(outer_lines=True)
plt.xlim(-300, 300)
plt.ylim(-100, 500)
但是现在我不知道如何在show()函数中表示这些数据,除了法庭之外,我无法得到任何要显示的分数。主列表和访问者列表包含具有正确属性的对象
以下是我的表演功能:
def show(home, visitor, ball):
(plt.scatter(h.x, h.y, c="#4AA5F0") for h in home)
(plt.scatter(v.x, v.y, c="#F0A45D") for v in visitor)
plt.draw()
如何正确设置此运动的动画?先谢谢你