如何在matplotlib和python中使线条图中的颜色淡入淡出

如何在matplotlib和python中使线条图中的颜色淡入淡出,python,colors,matplotlib,Python,Colors,Matplotlib,我有两个数字,每个数字有3个子图。在每个子图中,通过使用for循环,有20条不同的曲线,代表20个步骤。如何使曲线的颜色逐渐褪色?就像我下面的代码一样,顶部的子图(311)有20条蓝色曲线……如何使第一步变成深蓝色,并使蓝色逐渐褪色,直到最后一步变成浅蓝色?另外,我如何使这两个数字同时出现在屏幕上?现在,我必须手动关闭第一个图形,以便弹出第二个图形 from pylab import * for raw_step in raw: raw_step = zip(*raw_step)

我有两个数字,每个数字有3个子图。在每个子图中,通过使用for循环,有20条不同的曲线,代表20个步骤。如何使曲线的颜色逐渐褪色?就像我下面的代码一样,顶部的子图(311)有20条蓝色曲线……如何使第一步变成深蓝色,并使蓝色逐渐褪色,直到最后一步变成浅蓝色?另外,我如何使这两个数字同时出现在屏幕上?现在,我必须手动关闭第一个图形,以便弹出第二个图形

from pylab import *
for raw_step in raw:
    raw_step = zip(*raw_step)
    Raw_Vertex, Raw_KI, Raw_KII, Raw_KIII = raw_step[0], raw_step[1], raw_step[2], raw_step[3]

    subplot(311)
    plot(Raw_Vertex, Raw_KI, 'bo-')
    grid(True)
    title('Raw SIFs')
    ylabel('K_I')

    subplot(312)
    plot(Raw_Vertex, Raw_KII, 'go-')
    grid(True)
    ylabel('K_II')

    subplot(313)
    plot(Raw_Vertex, Raw_KIII, 'ro-')
    grid(True)
    xlabel('Vertex')
    ylabel('K_III')

show()


for mls_step in mls:
    mls_step = zip(*mls_step)
    MLS_Vertex, MLS_KI, MLS_KII, MLS_KIII = mls_step[0], mls_step[1], mls_step[2], mls_step[3]

    subplot(311)
    plot(MLS_Vertex, MLS_KI, 'bo-')
    grid(True)
    title('MLS SIFs')
    ylabel('K_I')

    subplot(312)
    plot(MLS_Vertex, MLS_KII, 'go-')
    grid(True)
    ylabel('K_II')

    subplot(313)
    plot(MLS_Vertex, MLS_KIII, 'ro-')
    grid(True)
    xlabel('Vertex')
    ylabel('K_III')

show()

要获得浅蓝色,请使用

blues = plt.get_cmap('Blues')  # this returns a colormap
color = blues(1 - float(i)/(len(raw)-1)) # blues(x) returns a color for each x between 0.0 and 1.0

要并排放置子图,请使用
fig.add_子图(行、列、n)
定义6个轴

fig = plt.figure()
ax[1] = fig.add_subplot(3, 2, 1) # 3x2 grid, 1st plot
...
ax[6] = fig.add_subplot(3, 2, 6) # 3x2 grid, 6th plot


如果您想在颜色选择上更灵活一些,那么我建议使用
colorsys

它有一些非常有用的功能,可以在不同的彩色地图之间进行转换; ,这可以给您更大的灵活性

您可以这样使用它:

ax[1].plot(Raw_Vertex, Raw_KI, 'o-', color =colorsys.hsv_to_rgb(0,1-i/float(curves),1))
它很容易改变亮度,黑暗度和颜色到任何你想要的地方,以更直观的方式。

ax[1].plot(Raw_Vertex, Raw_KI, 'o-', color =colorsys.hsv_to_rgb(0,1-i/float(curves),1))