首页 > 解决方案 > 创建一个饼图数量未知的饼图

问题描述

我正在尝试创建创建饼图的函数。这个饼图可以有 n 个饼图,这就是我将函数参数作为*args. 我找到了一种根据函数中输入参数的数量创建颜色的方法,但我被困在如何在这个函数中创建图例。

我想要变量名作为图例。例如,如果pieChart(freigegebenCommands, KeinefreigegebenCommands )调用了,那么我的图例应该是

传说 =['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()

标签: pythonpython-3.xlegendpie-chart

解决方案


您可以将 args 从简单数据类型更改为元组或任何其他合适的类型(即字典)

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

pieChart(*input)

然后在你的函数里面改变你的 for 循环......

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

并从第一个索引中获取图例


推荐阅读