Я анимировал двумерную линию и хочу, чтобы она отображалась в карте цветов viridis.Код не работает, потому что я не уверен, где в коде назначить цветовую карту и как именно ее определить.
Я пытался определить «viridis» и вызывать его в разных местах, в том числе вопределенная функция 'LineAnimation' и вне ее, а также внутри функции 'animate' 'LineAnimation'.В настоящее время код выглядит следующим образом:
from matplotlib import cm
from matplotlib.colors import ListedColormap, LinearSegmentedColormap
from collections import OrderedDict
viridis = cm.get_cmap('viridis', 12)
def LineAnimation(Song,Times):
fig1 = plt.figure()
ax = plt.axes(xlim=(0, len(song)), ylim=(-np.amax(song), np.amax(song)))
#ax = plt.axes(xlim=(0, 2), ylim=(-2, 2))
line, = ax.plot([], [], lw=2)
def init():
line.set_data([], [])
return line,
def animate(i):
x = times[:i]
y = song[:i]
line.set_data(x, y)
line.register_cmap(name='viridis', cmap=viridis)
line.set_cmap(viridis)
return line,
anim = animation.FuncAnimation(fig1, animate, init_func=init,
frames=len(song), interval=20, blit=True)
plt.show()
return anim
Я ожидаю увидеть анимацию на цветовой шкале viridis: начиная с фиолетового и заканчивая желтым.Но я не получаю вывод или сообщение об ошибке.