在matplotlib中使用不同颜色的点绘制绘图的常规方法是将颜色列表作为参数传递。
例如:import matplotlib.pyplot
matplotlib.pyplot.scatter([1,2,3],[4,5,6],color=['red','green','blue'])
当你有一个列表的列表,你希望他们的颜色每个列表。
我想最优雅的方式是@DSM的建议,
只需做一个循环,进行多次调用分散。
但如果出于某种原因,你只需要打一个电话,你就可以列出一大串颜色,有一个列表理解和一点地板划分:import matplotlib
import numpy as np
X = [1,2,3,4]
Ys = np.array([[4,8,12,16],
[1,4,9,16],
[17, 10, 13, 18],
[9, 10, 18, 11],
[4, 15, 17, 6],
[7, 10, 8, 7],
[9, 0, 10, 11],
[14, 1, 15, 5],
[8, 15, 9, 14],
[20, 7, 1, 5]])
nCols = len(X)
nRows = Ys.shape[0]
colors = matplotlib.cm.rainbow(np.linspace(0, 1, len(Ys)))
cs = [colors[i//len(X)] for i in range(len(Ys)*len(X))