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