您必须告诉matplotlib使用哪种颜色。例如,使用seaborn的默认调色板:
import matplotlib.pyplot as plt
import seaborn as sns
import itertools
ax=fig.add_subplot(111)
palette = itertools.cycle(sns.color_palette())
for f in files:
ax.scatter(args, color=next(palette))
这样itertools.cycle
可以确保我们不会用完所有颜色,并在使用最后一种颜色后再从第一种颜色开始。
palette = sns.color_palette(None, len(files))
可能是一个更好的解决方案。不同之处在于,我最上面的原始答案会尽可能地遍历默认颜色,而此解决方案创建的调色板具有与文件一样多的色相。这意味着不会重复任何颜色,但是颜色之间的差异可能非常细微。