我不想为每个绘制的线指定颜色:
from matplotlib import pyplot as plt
for i in range(20):
plt.plot([0, 1], [i, i])
plt.show()
Run Code Online (Sandbox Code Playgroud)
如果您为此查看图像,matplotlib会尝试为每行不同的颜色选择颜色,但最终会重新使用颜色.我只是想阻止它重复已经使用的颜色和/或提供一个颜色列表来使用.
小智 93
我通常使用这3个中的第3个,我也不会检查1和2版本.
from matplotlib.pyplot import cm
import numpy as np
#variable n below should be number of curves to plot
#version 1:
color=cm.rainbow(np.linspace(0,1,n))
for i,c in zip(range(n),color):
plt.plot(x, y,c=c)
#or version 2:
color=iter(cm.rainbow(np.linspace(0,1,n)))
for i in range(n):
c=next(color)
plt.plot(x, y,c=c)
Run Code Online (Sandbox Code Playgroud)
3的例子:

tom*_*m10 53
在1.0以上版本的matplotlib中,您可以使用axes.set_prop_cycle(参见示例),在旧版本中,axes.set_color_cycle(参见示例).
Cir*_*四事件 10
prop_cycle
color_cycle在1.5中被弃用,赞成这种概括:http://matplotlib.org/users/whats_new.html#added-axes-prop-cycle-key-to-rcparams
# cycler is a separate package extracted from matplotlib.
from cycler import cycler
import matplotlib.pyplot as plt
plt.rc('axes', prop_cycle=(cycler('color', ['r', 'g', 'b'])))
plt.plot([1, 2])
plt.plot([2, 3])
plt.plot([3, 4])
plt.plot([4, 5])
plt.plot([5, 6])
plt.show()
Run Code Online (Sandbox Code Playgroud)

同样显示在(现在命名很差的)示例中:http://matplotlib.org/1.5.1/examples/color/color_cycle_demo.html提到:https://stackoverflow.com/a/4971431/895245
在matplotlib 1.5.1中测试.
我不知道你是否可以自动更改颜色,但你可以利用你的循环生成不同的颜色:
for i in range(20):
ax1.plot(x, y, color = (0, i / 20.0, 0, 1)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,颜色将从黑色变为100%绿色,但您可以根据需要进行调整.
请参阅matplotlib plot()文档并查找color关键字参数.
如果要提供颜色列表,只需确保列表足够大,然后使用循环索引选择颜色
colors = ['r', 'b', ...., 'w']
for i in range(20):
ax1.plot(x, y, color = colors[i])
Run Code Online (Sandbox Code Playgroud)
您可以使用预定义的“定性颜色图”,如下所示:
from matplotlib.cm import get_cmap
name = "Accent"
cmap = get_cmap(name) # type: matplotlib.colors.ListedColormap
colors = cmap.colors # type: list
axes.set_prop_cycle(color=colors)
Run Code Online (Sandbox Code Playgroud)
在 matplotlib 3.0.3 上测试。见https://github.com/matplotlib/matplotlib/issues/10840讨论为什么你不能打电话axes.set_prop_cycle(color=cmap)。
https://matplotlib.org/gallery/color/colormap_reference.html提供了预定义的定性颜色图列表:
