如何阻止 Matplotlib 重复颜色?

max*_*oku 5 python plot matplotlib

我有这个代码:

plist = ['p5', 'p14', 'p23', 'p32', 'p41', 'p50', 'p59', 'p68', 'p77', 'p85', 'p95']


for pltcount in range(len(plist)):
    plt.plot(data1[pltcount], np.exp(data2)[pltcount], marker='o', label=str(plist[pltcount]))
plt.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)

这是使用plt.style.use('fivethirtyeight') 使情节更好。我找到了手动分配颜色的示例。如果我希望它是自动的并且来自一些众所周知的调色板怎么办?

在此处输入图片说明

cs9*_*s95 7

彩虹的颜色怎么样?这里的关键是用来ax.set_prop_cycle为每一行分配颜色。

NUM_COLORS = len(plist)

cm = plt.get_cmap('gist_rainbow')
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_prop_cycle('color', [cm(1.*i/NUM_COLORS) for i in range(NUM_COLORS)])
# Or,
# ax.set_prop_cycle(color=[cm(1.*i/NUM_COLORS) for i in range(NUM_COLORS)])
for i, p in enumerate(plist):
    ax.plot(data1[i], np.exp(data2)[i], marker='o', label=str(p))

plt.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)

从这里借来的。其他可能的选择。