Различные цвета для каждой метки в моей круговой диаграмме - PullRequest
0 голосов
/ 07 февраля 2019

Я знаю, что можно изменить все цвета надписей, используя textprops = dict (color = 'white') внутри команды plt.pie (), однако возможно ли, чтобы у каждой надписи был свой цвет?Я пробовал следующее:

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

, что приводит к ошибке:

AttributeError: у объекта 'list' нет атрибута '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()

Это даетошибка:

Ошибка типа: len () объекта без размера

Не знаю, что еще попробовать, у меня нет идей.

1 Ответ

0 голосов
/ 07 февраля 2019

Вы можете перебирать текстовые метки, возвращаемые 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

...