Создание круговой диаграммы с неизвестным количеством пирогов - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь создать функцию, которая создает круговую диаграмму. Эта круговая диаграмма может иметь n чисел, поэтому я принимаю аргументы функции за *args. Я нашел способ создавать цвета в соответствии с количеством входных аргументов в функции, но я застрял, как создавать легенды в этой функции.

Я хочу, чтобы имена переменных были в качестве легенд. например, если вызывается pieChart(freigegebenCommands, KeinefreigegebenCommands ), то моя легенда должна быть

legends = ['freigegebenCommands', 'KeinefreigegebenCommands']

Как это реализовать?

 def pieChart(*args):

    sizes = []
    for arg in args:
        sizes.append(len(arg))

    totalargs = len(args)    
    cs=cm.Set1(np.arange(totalargs)/totalargs)
    explode = (0.1, 0)  # explode 1st slice

    # Plot
    patches, texts, autotexts = plt.pie(sizes, explode=explode, colors=cs, autopct='%1.1f%%', shadow=True, startangle=140, radius = 2)

    ##HOW TO ADD LEGEND??
    #plt.legend(patches, legend, loc="best", bbox_to_anchor=(0.7, 1))
    plt.axis('equal')
    plt.show()

1 Ответ

0 голосов
/ 01 ноября 2019

Вы можете изменить ваши аргументы с простого типа данных на кортежи или любой другой подходящий тип (например, словарь)

input = [('slice_name', 1) ...]

pieChart(*input)

, а затем внутри вашей функции просто изменить свои циклы for ...

sizes = [len(x[1]) for x in args]

и получите легенды по первым индексам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...