首页 > 解决方案 > 如何将颜色图分配给 matplotlib 图形动画?

问题描述

我已经动画了一条二维线,我希望它显示在 viridis 颜色图中。该代码不起作用,因为我不确定在代码中的何处分配颜色图,以及如何准确定义它。

我已经尝试定义'viridis'并在不同的地方调用它,包括在定义的函数'LineAnimation'内部和外部,以及'LineAnimation'的'animate'函数内。目前代码如下所示:

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 颜色栏中看到动画:从紫色开始,以黄色结束。但我没有得到任何输出或错误消息。

标签: matplotlibanimationcolorsviridis

解决方案


推荐阅读