Рамка Matplotlib FuncAnimation не отображается при добавлении нового художника

Я делаю анимацию в Matplotlib, где новые художники (в частности, патчи) добавляются каждые несколько кадров, но когда я запускаю ее, каждый кадр, в который добавляется новый художник, полностью пуст. Я знаю, что есть некоторая проблема с блиттингом, поскольку он работает, когда я его выключаю, но мне нужно его включить. Я возвращаю каждую форму, созданную или измененную в каждом кадре, как того требует документация. Я использую серверную часть MacOSX.

Мой код выглядит примерно так:

from random import random
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation

fig = plt.figure()
axe = fig.add_axes([0, 0, 1, 1], frameon=False)
circles = []

def update(i):
    if not i % 10:
        new_circle = plt.Circle((random(), random()), 0.05, color='black')
        axe.add_patch(new_circle)
        circles.append(new_circle)

    for circle in circles:
        circle.center = (random(), random())

    return circles

animation = FuncAnimation(fig, update, frames=60, interval=1000/30, repeat=False, blit=True)
plt.show()

1 ответ

Решение

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

Другие вопросы по тегам