我不知道你是什么意思’手动’。您可以选择颜色映射,并使颜色阵列足够容易:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
x = np.arange(10)
ys = [i+x+(i*x)**2 for i in range(10)]
colors = cm.rainbow(np.linspace(0, 1, len(ys)))
for y, c in zip(ys, colors):
plt.scatter(x, y, color=c)
或者使用itertools.cycle和指定你想要循环的颜色,使用你自己的颜色循环,使用下一个获得你想要的。例如(我太懒得输出十种颜色):
colors = itertools.cycle(["r", "b", "g"])
for y in ys:
plt.scatter(x, y, color=next(colors))
来想想它,也许是更清洁不使用拉链与第一个太:
colors = iter(cm.rainbow(np.linspace(0, 1, len(ys))))
for y in ys:
plt.scatter(x, y, color=next(colors))
[PS:我真的很讨厌,我必须放弃’u’当使用matplotlib ..]