如何在python matplotlib中将标签放置在饼图顶部?
我试图画一个饼图,并在饼上贴上一个标签,但不知道怎么做。 谁能教我如何在馅饼上贴标签吗 下面是数据示例如何在python matplotlib中将标签放置在饼图顶部?,python,matplotlib,Python,Matplotlib,我试图画一个饼图,并在饼上贴上一个标签,但不知道怎么做。 谁能教我如何在馅饼上贴标签吗 下面是数据示例 Group percent [0,10] 0 [10,20] 3 [20,30] 16 [30,40] 11 [40,50] 23 [50,60] 5 [60,70] 27 这是我想要的饼图格式。 我确信还有其他方法可以做到这一点,但我的回应是将从Autotext获得的标签更改为我想要添加的标签 fig, ax = plt.sub
Group percent
[0,10] 0
[10,20] 3
[20,30] 16
[30,40] 11
[40,50] 23
[50,60] 5
[60,70] 27
这是我想要的饼图格式。
我确信还有其他方法可以做到这一点,但我的回应是将从Autotext获得的标签更改为我想要添加的标签
fig, ax = plt.subplots(figsize=(10, 7), subplot_kw=dict(aspect="equal"))
data = df['percent']
labels = ['0~10%', '10~20%', '20~30%', '30~40%', '40~50%', '50~60%','60~70%']
colors = ['#fad9c1','#03396c', '#3b5998', '#63ace5', '#adcbe3','#e3f0ff']
def func(pct, allvals):
absolute = int(round(pct/100.*np.sum(allvals)))
return "{:.1f}%\n{:d} hr\n".format(pct, absolute)
wedges, texts, autotexts = ax.pie(data, colors=colors, autopct=lambda pct: func(pct, data), textprops=dict(color="black"))
for i in range(len(labels)):
tmp = autotexts[i].get_text()
new_label = labels[i]+'\n'+tmp.split('\n')[1]+'\n'
autotexts[i].set_text(new_label)
plt.setp(autotexts, size=12, weight="bold")
plt.show()
这里有关于您所问问题的文档
fig, ax = plt.subplots(figsize=(10, 7), subplot_kw=dict(aspect="equal"))
data = df['percent']
labels = ['0~10%', '10~20%', '20~30%', '30~40%', '40~50%', '50~60%','60~70%']
colors = ['#fad9c1','#03396c', '#3b5998', '#63ace5', '#adcbe3','#e3f0ff']
def func(pct, allvals):
absolute = int(round(pct/100.*np.sum(allvals)))
return "{:.1f}%\n{:d} hr\n".format(pct, absolute)
wedges, texts, autotexts = ax.pie(data, colors=colors, autopct=lambda pct: func(pct, data), textprops=dict(color="black"))
for i in range(len(labels)):
tmp = autotexts[i].get_text()
new_label = labels[i]+'\n'+tmp.split('\n')[1]+'\n'
autotexts[i].set_text(new_label)
plt.setp(autotexts, size=12, weight="bold")
plt.show()