Вопрос, вкратце, таков: возможно ли (с помощью инструментов matplotlib.animation или других модулей для python) получить замедленное движение в определенных кадрах анимации?
Некоторый контекст:
У меня есть анимированный график matplotlib, в котором я изменяю одну переменную и показываю контурный график поверх двух других. Моя идея состояла в том, чтобы замедлить анимацию, когда я нахожусь около максимума функции, чтобы я мог более четко определить ее, ускоряя при этом далеко от нее, где нет особого интереса.
В данный момент мой Лучшая идея состоит в том, чтобы удвоить кадры, максимально приближенные к максимальному, но может у кого-нибудь есть идея получше?
Спасибо всем!
Фрагмент кода:
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
X = np.linspace(1,10, 100)
Y = np.linspace(1,10, 100)
R = np.linspace(-1, 1, 100)
ims = []
for r in R:
z = func(X, Y, r)
im = plt.imshow(z)
ims.append(im)
if check_r(r):
ims.append(im)
где func()
- это функция, которая возвращает массив (len(X), len(Y))
, который зависит от r
(например, Z[i,j] = X[i]**r * Y[j]**(1-r)
или чего-либо еще, тогда как check_r()
проверяет, находится ли r
в диапазоне значений, которые должны быть максимизируется.