Как анимировать круги и линии с помощью matplotlib? - PullRequest
0 голосов
/ 14 ноября 2018

Я могу оживить шесть кругов, и я могу оживить линию. Когда я пытаюсь оживить оба, я не могу понять, что init () и animate () должны вернуть. Для шести кругов я "возвращаю кортеж (булавки)", а для линии я "возвращаю линию". Каждый вывод - это "класс" matplotlib.patches.Circle ", а строка -" класс "matplotlib.lines.Line2D '."

Когда я пытаюсь оживить и круги, и линию, я безуспешно пробовал много разных операторов return. Вот некоторые из результатов:

возврат строки, кортеж (pins) ДАЕТ объект 'кортеж' не имеет атрибута 'set_animated'

возврат кортежа (pins) + (строка) ДАЕТ, может только конкатенировать кортеж (не "Line2D") к кортежу

return tuple (pins) + tuple (line) ДАЕТ объект 'Line2D' не повторяется

1 Ответ

0 голосов
/ 14 ноября 2018

Обратите внимание, что вам нужно только что-то вернуть из функции анимации, если вы используете блиц.

Из документации :

Если blit == True, func должен возвращать итерируемое число всех исполнителей, которые были изменены или созданы.Эта информация используется алгоритмом блиттинга для определения того, какие части фигуры должны быть обновлены.Возвращаемое значение не используется, если blit == False, и может быть опущено в этом случае.

Поэтому простое пропускание return может быть самым простым вариантом.

Если вам нужно /Если вы хотите использовать блиттинг, вам нужно вернуть итерацию художников.Это может быть, например, кортеж или список.К сожалению, не ясно, что pins из вопроса.

Предположим, pins - это список,

return pins + [line]

или, если вы хотите сделать его списком,

return list(pins) + [line]

Предположим, pins - это кортеж,

return pins + (line,)

или, если вы хотите сделать его кортежем,

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