Как анимировать 3D массив с помощью numpy и matplotlib - PullRequest
0 голосов
/ 24 марта 2020

У меня есть созданная сетка в numpy с координатами x и y с z в качестве значения, которое будет использоваться для точек раскраски:

import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
%matplotlib notebook

x, y, z = np.meshgrid(np.arange(1, 101), np.arange(1, 101), np.zeros(1), indexing = "xy")

Если я построю это с использованием разброса, я получу нужный результат :

plt.scatter(x, y, c = z)

Теперь я написал функцию обновления, которая принимает x и y и управляет z:

def funcUpdate():
    global x, y, z
    for i in range(len(x)):
        for j in range(len(y)):
            count = int(np.count_nonzero(z[i-1:i+2, j-1:j+2] == 1)) 
            if count > 0:
                if count == 1:
                    chance = 5 
                if count > 1 and count <= 4:
                    chance = 6-count 
                else:
                    chance = 1
                if np.random.randint(chance) == 1:
                    z[i, j] = 1

И теперь я застрял. Я хотел бы запускать функцию обновления n раз и иметь анимацию, которая обновляет мой график рассеяния для каждого шага. Пожалуйста, помогите.

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