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

时间:2019-02-07 00:27:29

标签: matplotlib pie-chart

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

colorlist = ['w','k','r','g']    
textprops = [dict(color = c) for c in colorlist]

这会导致错误:

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

textprops = dict(color = colorlist)

这将导致完全没有标签的绘图,最后我尝试将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()

出现错误:

TypeError:未调整大小的对象的len()

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

1 个答案:

答案 0 :(得分:2)

您可以遍历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()

enter image description here