Анимируйте квадрат и стрелку с помощью matplotlib animate и патчей - PullRequest
1 голос
/ 12 марта 2019

Я хочу анимировать местоположение и скорость робота, используя прямоугольник и стрелку в блокноте Юптера.Прямоугольный патч представляет местоположение робота на сетке и показывает стрелку вектора скорости робота.Сетка - это матрица, показанная как тепловая карта imshow с возможным препятствием, имеющим высокую температуру.

Сейчас у меня есть код вдоль линии, показанной ниже

from matplotlib import animation
from matplotlib import patches
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(9,9))
ax = fig.add_subplot(1,1,1)

rectangle = patches.Rectangle((0,0), robo_width, robot_length,)
arrow = patches.Arrow(0,0,0,5)
img = plt.imshow(grid[0], cmap='hot', interpolation='nearest', animated=True)

def update(frame):

    rectangle.set_xy([x[frame], y[frame]])
    img.set_array(grid[frame])

    return img

animate = animation.FuncAnimation(fig, updatefig)

HTML (animate.to_jshtml ())

С этим я могу нанести квадрат робота поверх изображения сетки, чтобы показать местоположение робота.Проблема в том, что я не могу найти функцию, аналогичную set_xy () для патча стрелки, и не могу обновить стрелку как прямоугольник.Есть ли метод обновления для стрелки?Есть ли другой способ построить это?

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