Как добавить сюжет в анимированный список изображений в Matplotlib? - PullRequest
0 голосов
/ 03 мая 2018

Я взял следующий код из здесь . После plt.imshow() я хочу нарисовать красную точку, которая находится в разных позициях для каждого «кадра».

Как использовать plt.plot(), который уникален для plt.imshow()?

Приведенный ниже код сохраняет ранее нарисованные красные точки из предыдущих «кадров».

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

fig = plt.figure()


def f(x, y):
    return np.sin(x) + np.cos(y)

x = np.linspace(0, 2 * np.pi, 120)
y = np.linspace(0, 2 * np.pi, 100).reshape(-1, 1)
# ims is a list of lists, each row is a list of artists to draw in the
# current frame; here we are just animating one artist, the image, in
# each frame
ims = []
for i in range(60):
    x += np.pi / 15.
    y += np.pi / 20.
    im = plt.imshow(f(x, y), animated=True)

    # my added code here
    plt.plot(pos_x, pos_y, 'ro') # pos_x, pos_y change on every iteration

    ims.append([im])

ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True,
                                repeat_delay=1000)

# ani.save('dynamic_images.mp4')

plt.show()

1 Ответ

0 голосов
/ 04 мая 2018

Включить объект Line2D, созданный plot, в список анимированных объектов.

line, = plt.plot(pos_x, pos_y, 'ro')

ims.append([im, line])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...