饼图中每个标签的颜色不同

MS *_*ics 3 matplotlib pie-chart

我知道可以使用 plt.pie() 命令中的 textprops = dict(color = 'white') 更改所有标签颜色,但是是否可以让每个标签都有自己的颜色?我已经尝试过以下方法:

colorlist = ['w','k','r','g']    
textprops = [dict(color = c) for c in colorlist]
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

AttributeError:“列表”对象没有属性“setdefault”

textprops = dict(color = colorlist)
Run Code Online (Sandbox Code Playgroud)

这导致绘图根本没有标签,最后我尝试将 plt.pie() 调用放入 for 循环中,但即使是最简单的版本也不起作用。

sizes = [50,50]
plt.figure(figsize=(15,15))
for i in range(len(sizes)):
    s = sizes[i]
    plt.pie(s)
    plt.axis('equal')
    plt.show()
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

类型错误:对象的 len() 大小不正确

我不知道还能尝试什么,我没有想法。

Imp*_*est 5

您可以循环遍历返回的文本标签pie并单独为每个标签着色。

import matplotlib.pyplot as plt

labels = ["AAA", "BBB", "CCC", "DDD"]
colorlist = ['crimson','k','r','gold']    
sizes = [10,20,20,40]

plt.figure()

wedges, texts = plt.pie(sizes, labels=labels)
for text, color in zip(texts, colorlist):
    text.set_color(color)

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

在此输入图像描述