Анимация круга в Матплотлибе Python - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь анимировать круг таким образом, чтобы размер круга менялся.
CODE

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation

fig = plt.figure()
ax = plt.axes(xlim=(-3,3), ylim=(-2,2))
plt.axis('off')
line1, = ax.plot([], [], lw=2)
line2, = ax.plot([], [], lw=2)

def init():
    line1.set_data([], [])
    line2.set_data([], [])
    return line1, line2,

def animate(i):
    r = 0.0008*(i**2)-0.08*i+2
    x = np.linspace(-2, 2, 100)
    y = np.sqrt(r**2-x**2)
    line1.set_data(x,y)
    line2.set_data(x,-y)
    return line1, line2,

anim = animation.FuncAnimation(fig, animate, init_func=init, frames=100, interval=40, blit=True)

plt.show()

Когда я запускаю это, я вижу только мерцание. Как я могу это исправить? и когда я вижу какой-то круг, края двух функций не соединяются.

РЕДАКТИРОВАТЬ
Я редактировал код выше. Теперь я получаю круг, который не близко из-за использования 2 функций. Есть ли способ это исправить? Или это потому, что у Matplotlib недостаточно времени для полного построения двух функций?
Very small parts are missing, most of the frames are even more incomplete

1 Ответ

0 голосов
/ 05 апреля 2020

Я полагаю, что ваш круг просто очень быстро выходит из кадра, обратите внимание, что входные данные для функции animate - это временной шаг анимации в виде целого числа, поэтому здесь он будет go от 0 до 100.

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