我有一系列线条(目前总共60条),我想将它们绘制到同一个图中,以展示某个过程的时间演变。这些线条当前是按照时间顺序绘制的,最早的时间步骤用100%红色绘制,最新的时间步骤用100%蓝色绘制,而中间的时间步骤则根据其所处时间使用红色和蓝色的混合色进行绘制(随着时间的增加,红色的比例线性减少,蓝色的比例线性增加;形成了简单的颜色渐变)。我想要制作一个(最好是垂直的)颜色条,以连续的方式显示这些线条。我的意思是,我希望颜色条底部是红色的,顶部是蓝色的,在颜色条的中间有一些红色和蓝色的混合色,这些混合色应该与我绘制的线条呈平滑的红蓝渐变。我还想在这个颜色条上放置坐标轴,以便显示哪种颜色对应哪个时间步骤。
我已经阅读了
以下是我用于绘制这些线条的示例代码:
我已经阅读了
matplotlib.pyplot.colorbar()
的文档,但无法在不使用matplotlib预定义的colormap的情况下实现我想要的效果。我的猜测是,我需要定义自己的colormap,使其从红色到蓝色进行渐变,然后将其提供给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值之间的关系。红色线表示较早的时间步长,蓝色线表示较晚的时间步长,紫色线位于中间,如上所定义。已经绘制了这些内容,如何创建一个颜色条(在可能的情况下垂直于右侧),将每个颜色表示的时间步长的时间值与线的颜色(连续)映射到一起?