最好的方法是使用 matplotlibcolormap
API.
from matplotlib import pyplot as pl
from matplotlib import cm
pl.scatter(times, values, c = cm.spectral(1.*values/max(values)))
显然,您需要使用其他函数来从数据中获取颜色。但总的来说,cm.spectral
() 将返回给定 0 到 1 之间的浮点数或 0 到 255 之间的 int 的颜色。
作为一般性评论,您可能最好使用 numpy 数组,而不是尝试zip
您的数据在一起。对于更复杂的数据结构可能比这个例子更容易。
import numpy as np
from matplotlib import pyplot as pl
from matplotlib import cm
measurements = np.array([[0, "a"], [1, "b"], [2, "c"]])
times = np.arange(3)
values = np.array(measurements[:,0], dtype=float)
parameters = np.array(measurements[:,1], dtype='S1')
pl.scatter(times, values, c = cm.spectral(values/max(values)))
pl.show()