Как назначить цветовую карту для анимации графа matplotlib? - PullRequest
0 голосов
/ 12 февраля 2019

Я анимировал двумерную линию и хочу, чтобы она отображалась в карте цветов 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: начиная с фиолетового и заканчивая желтым.Но я не получаю вывод или сообщение об ошибке.

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