我有一系列的线(目前总共60条),我想把它们绘制成同一个图形,以显示某个过程的时间演变。当前绘制的线使最早的时间步以100%红色绘制,最晚的时间步以100%蓝色绘制,中间的时间步是红蓝混合的,基于它们的时间(红色的量随时间的增加而线性减少,而蓝色的量随时间的增加而线性增加时间;简单的颜色渐变)。我想做一个(最好是垂直的)彩色条,以一种持续的方式显示这一点。我的意思是我想要一个颜色条,底部是红色,顶部是蓝色,中间是红色和蓝色的混合色,可以像我画的线一样从红色平滑地过渡到蓝色。我还想把轴放在这个颜色条上,这样我可以显示哪个颜色对应于哪个时间步。
我已经阅读了matplotlib.pyplot.colorbar()的文档,但是如果不使用matplotlib以前定义的颜色映射,我就无法理解如何做我想做的事情。我的猜测是,我需要定义自己的颜色映射,它从红色过渡到蓝色,然后将其馈送到matplotlib.pyplot.colorbar()并获得我想要的颜色条会相对简单。
下面是我用来绘制线的代码示例:import numpy as np
from matplotlib import pyplot as pp
x= ##x-axis values for plotting
##start_time is the time of the earliest timestep I want to plot, type int
##end_time is the time of the latest timestep I want to plot, type int
for j in range(start_time,end_time+1):
##Code to read data in from time step number j
y = ##the data I want to plot
red = 1. - (float(j)-float(start_time))/(float(end_time)-float(start_time))
blue = (float(j)-float(start_time))/(float(end_time)-float(start_time))
pp.plot(bin_center,spectrum,color=(red,0,blue))
pp.show()
编辑:
也许这会让我更明白我的意思。下面是我的图:
每一行显示不同时间点x值和y值之间的关系。红色线是较早的时间步,蓝色线是较晚的时间步,紫色线在中间,如我上面定义的。在已经绘制好的情况下,如何创建一个颜色条(如果可能的话,垂直在右侧),将线条的颜色(连续)映射到每个颜色表示的时间步长的时间值?