Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中实时制作动画和处理csv数据_Python_Csv_Animation_Matplotlib Animation - Fatal编程技术网

在python中实时制作动画和处理csv数据

在python中实时制作动画和处理csv数据,python,csv,animation,matplotlib-animation,Python,Csv,Animation,Matplotlib Animation,因此,我正在用Python编写一个程序,跟踪玩家的移动。我有一个大的CSV文件中的x和y坐标。我必须一次处理11排,因为每边有5名球员加上球。我试图做的是从CSV文件中读取坐标,然后使用它们来呈现游戏的实时动画(玩家在球场上移动时的点)。现在我真的很难显示这些点。我不确定是否应该使用matplotlib.animation.FunCanimation函数,因为我需要进一步处理这些数据,我甚至不确定如何正确使用它,因为我是Python新手 这就是我循环使用CSV文件并准备数据的方式。我查看正在播放

因此,我正在用Python编写一个程序,跟踪玩家的移动。我有一个大的CSV文件中的x和y坐标。我必须一次处理11排,因为每边有5名球员加上球。我试图做的是从CSV文件中读取坐标,然后使用它们来呈现游戏的实时动画(玩家在球场上移动时的点)。现在我真的很难显示这些点。我不确定是否应该使用matplotlib.animation.FunCanimation函数,因为我需要进一步处理这些数据,我甚至不确定如何正确使用它,因为我是Python新手

这就是我循环使用CSV文件并准备数据的方式。我查看正在播放的ID,在字典中找到正确的ID,并将它们添加到列表中。这部分工作正常

    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()
如何正确设置此运动的动画?先谢谢你