Визуализируйте набор массивов, используя matplotlib - PullRequest
0 голосов
/ 01 июня 2018

Я хочу визуализировать набор массивов сверхурочно (с некоторой паузой между ними), используя matplotlib.Пока что у меня есть визуализация для одного массива, но я не знаю, как сделать это как анимацию.У меня есть код, который до сих пор создает список массивов и успешно визуализирует первый массив в списке.

import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
plt.style.use('classic')

a = []
for i in xrange(5):
    temp = np.zeros((5,5))
    temp[i, i] = 10
    a.append(temp)

fig, ax = plt.subplots(5, 5, figsize=(5, 5))
fig.subplots_adjust(hspace=0, wspace=0)

for i in range(5):
    for j in range(5):
        ax[i, j].xaxis.set_major_locator(plt.NullLocator())
        ax[i, j].yaxis.set_major_locator(plt.NullLocator())
        if a[0][i,j] == 10:
            ax[i, j].imshow(Image.open('A.png'), cmap="bone")
        else:
            ax[i, j].imshow(Image.open('B.png'), cmap="bone")

plt.show()

Как я могу визуализировать все массивы списка как анимацию?

1 Ответ

0 голосов
/ 01 июня 2018

Вам нужно будет импортировать модуль анимации и определить функцию, которая изменяет кадр, чтобы показать каждое захваченное изображение.

from matplotlib.animation import FuncAnimation

    def update(i):
        label = 'timestep {0}'.format(i)
        //Insert the data the frame here Eg:ax.imgshow(Image.open('A.png'), cmap="bone")
        ax.set_xlabel(label)
        return line, ax

    FuncAnimation(fig, update, frames=np.arange(0, 10), interval=200)

    plt.show()

Вы можете следовать этому удобному руководству:

https://eli.thegreenplace.net/2016/drawing-animated-gifs-with-matplotlib/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...