如何让matplotlib autopct成为标签名称的函数?

How to make matplotlib autopct a function of the label name?

我在Python中有一个简单的饼图:

values = [3, 5, 12, 8]
labels = ['a', 'b', 'c', 'd']
plt.pie(values, labels)

看起来像:

我也有一个值字典:

dictionary = {'a': 0.31, 'b': 0.11, 'c' : 0.07, 'd': 0.12}

我想用字典中相应的值来标记每个切片。我怎么做?我阅读了 this post,它演示了如何将额外的参数传递给 autopct 函数,但似乎每个切片的参数必须相同,而在这种情况下,每个切片的参数都不同。

我知道你要找的是用字典中定义为值的馅饼份额来标记每一块,对吗?

类似于:

dictionary = {'a': 0.31, 'b': 0.11, 'c' : 0.07, 'd': 0.12}
labels = dictionary.keys()
sizes = dictionary.values()
fig1, ax1 = plt.subplots()
ax1.pie(sizes, labels=labels, autopct='%1.1f%%', shadow=True, startangle=90)
plt.show()

希望这对你有用。