Как сделать анимацию кривой с нуля, используя Matplotlib - PullRequest
0 голосов
/ 16 апреля 2019

Обратите внимание, что это следующий вопрос Как сделать анимацию кривой Лиссажу ;

Моей первой идеей было отредактировать мой оригинальный вопрос и попросить анимацию, но я понимаю и уважаю ТАК способ работы.Так что лучше всего задать другой вопрос.

Я хочу сделать анимацию кривой (где вы рисуете ее постепенно) с параметризацией: x (t) = sin (3t) и y (y) = sin (4t) где t [0, 2pi].

Для этого я бы добавил код:

from matplotlib.animation import FuncAnimation

fig, ax = plt.subplots()
ln, = plt.plot([], [], 'b')

def init():
    ax.set_xlim(-1, 1)
    ax.set_ylim(-1, 1)
    return ln,

def update(frame):
    x.append(np.sin(4*frame))
    y.append(np.sin(3*frame))
    ln.set_data(x, y)
    return ln,

ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128),
                    init_func=init, blit=True)

Проблема в том, что с этим кодом он не рисует всю кривую изцарапина.Что значит переопределить его, получить перекрытие.

Как я могу нарисовать его с нуля (то есть начиная с белого фона)?Я думал о чем-то еще, но ничего не получил.

Спасибо

РЕДАКТИРОВАТЬ

Позвольте мне показать вам весь код:

%matplotlib notebook

import matplotlib.pyplot as plt
import math
import numpy as np
from matplotlib.animation import FuncAnimation

# set the minimum potential
rm = math.pow(2, 1 / 6)
t = np.linspace(-10, 10, 1000, endpoint = False)
x = []
y = []

for i in t: #TypeError 'int' object is not iterable
    x_i = np.sin( 3 * i )
    y_i = np.sin( 4 * i )
    x.append(x_i)
    y.append(y_i)

# set the title
plt.title('Plot sin(4t) Vs sin(3t)')

# set the labels of the graph
plt.xlabel('sin(3t)')
plt.ylabel('sin(4t)')

fig, ax = plt.subplots()
ln, = plt.plot([], [], 'b')

def init():
    ax.set_xlim(-1, 1)
    ax.set_ylim(-1, 1)
    return ln,

def update(frame):
    x.append(np.sin(4*frame))
    y.append(np.sin(3*frame))
    ln.set_data(x, y)
    return ln,

ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128),
                    init_func=init, blit=True)

# display the graph
plt.show()

Это изображение, которое я получаю вначало (скриншот, снятый примерно через 1 с после запуска; вот почему вы видите эту забавную строку): https://imgur.com/a/bNoViDA. Как вы можете видеть, она начинается не с нуля (то есть не с белого фона)

Это график, который я получаю в конце: https://imgur.com/a/WQHHUk9

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

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