如何使用matploblib.animation.funcanimation更新图像?

2024-09-28 20:57:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图制作一个迷宫生成器,并展示创建它的每一个“步骤”(以显示正在创建的迷宫的时间点)

我已经尝试过使用pyplot.pause和pyplot.imshow组合,它可以工作,但是非常慢,对于我需要的东西来说太慢了

我读到funcanimation可以用来显示图像更新,但我无法让它正常工作

迷宫以列表的形式存储

def chooseRandomAction(x, playSpace, possibleNodes, actions):
    #gets next maze state
    return next_maze_state


intWidth = 5
intHeight = 5

#creates initial state, not relevant to the question.
playSpace = [[3 for x in range(intWidth)] for x in range(intHeight)]
for i in range(1,intHeight - 1):
    if(i % 2 == 1):
        for j in range(1, intWidth - 1):
            if(j % 2 == 1):
                playSpace[i][j] = 0
playSpace[1][1] = 1
playSpace[intHeight - 2][intWidth - 2] = 2
possibleNodes = []
possibleNodes.append([1, 1])
possibleNodes.append([intHeight-2, intWidth-2])
a = -1
count = 0
actions = []
for i in range(len(possibleNodes)):
    actions+=actionsFromNode(playSpace, [possibleNodes[i][0], possibleNodes[i][1]])





plt.imshow(playSpace)
plt.axis('off')

while(count < 10):
    ani = FuncAnimation(plt.gcf(), chooseRandomAction, interval=5, fargs=(playSpace, possibleNodes, actions))
    count+=1

plt.show()

我原以为迷宫的前10个步骤会以一种时间后堂的形式显示出来,但生成的图像在没有时间后堂的情况下会立即显示出来


Tags: inactionsforcount时间步骤rangeplt