使用 matplotlib 在同一张图上画很多条曲线时,手工选择每条曲线的颜色是很麻烦的
事。如果颜色选得相近,眼睛不容易区分;如果用常见的非常不同的颜色(比如Matlab
常用的 y m c r g b w k 这些),选择又很有限,曲线一多就不够用了。用上不同线
形和 marker 形状固然也可以区分,不过有时候这些要用来区分别的东西(比如左右两
边的y轴)。
一个办法是从象 jet 这样的色彩鲜明的 colormap 中,自动挑选“等距”的颜色。在
一个 colormap 中,颜色是用一个 0 到 1 之间的浮点数指定的,所以“等距”很容易
实现。例子:
import matplotlib.pyplot as plt
import matplotlib.cm as cm
...
for n in range(ncurves):
plt.plot(xs[n], ys[n], color=cm.jet(n/(ncurves-1))
附图:常见 colormaps
(产生这张图的源代码在:http://wiki.scipy.org/Cookbook/Matplotlib/Show_colormaps)