Обратите внимание, что это следующий вопрос Как сделать анимацию кривой Лиссажу ;
Моей первой идеей было отредактировать мой оригинальный вопрос и попросить анимацию, но я понимаю и уважаю ТАК способ работы.Так что лучше всего задать другой вопрос.
Я хочу сделать анимацию кривой (где вы рисуете ее постепенно) с параметризацией: 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
Я пытаюсь получить эту конечную точку, но рисую все с нуля, не начиная с показанного графика.