Как использовать функции анимации matplotlib в 2D массиве - PullRequest
0 голосов
/ 11 апреля 2020

Я работал над простым клеточным автоматом и у меня работают основные функции, но я не знаю, как их совместить с FuncAnimate из matplotlib. У меня есть функция с именем evolve, как показано ниже:

def evolve(matrix, ticks): 
       return list of matrixs

, которая будет выводить указанное число (тики) массивов NxN, соответствующих кадрам в анимации. Матрица ввода / вывода будет представлять собой двумерные массивы с одним или нулями (np.int), где 1 должны быть черными квадратами, а 0 - белым. Я думаю, что мне нужно преобразовать данные в сетку, а затем поместить их в функции анимации. Нужно ли вызывать мою функцию evolve внутри функции анимации или я должен создать кадры перед использованием evolve, затем сохранить их и попытаться анимировать как один блок данных?

Пока что моя попытка сильфонная, но я Я совершенно не знаю, как продолжать это делать.

def animateArtist(frames,inputInterval, matrix):
    fig = plt.figure()


    #List of frames
    ims = test2
    for i in range(frames):

        im = plt.imshow(matrix, animated=True)
        ims.append([im])


    plt.close()
    #create the animation 
    anim=animation.ArtistAnimation(fig, ims, interval=inputInterval,blit=True)
    display(anim)
    pass

animateArtist(100,10, world1)

test2 - это результат эволюции fuction, поэтому определенное количество массивов NxN, содержащих 1s и 0s

...