Matplotlib 饼图标签对齐

2024-03-14

我试图在 matplotlib 中创建一个饼图,并希望将标签放在楔子内。我使用以下代码来做到这一点:

import matplotlib.pyplot as plt

fig = plt.figure(1, figsize=(8,8), dpi=60)
ax=fig.add_axes([0.1,0.1,0.8,0.8])
labels = ['label0','label1','label2','label3','label4','label5','label6','label7','label8',\
          'label0','label1','label2','label3','label4','label5','label6','label7','label8']
colors = list('w' for _ in range(18))
fracs=list(20 for _ in range(18))
ax.pie(fracs, labels=labels, colors = colors, startangle=10,labeldistance=0.8)
plt.show()

标签似乎没有在楔形内正确对齐,如下图所示。有什么方法可以修改(或旋转)标签,以便它们可以正确显示在楔子内?

谢谢你!


返回后调整标签的对齐方式应该可以解决问题:

patches, texts = ax.pie(fracs, labels=labels, colors = colors, 
                        startangle=10, labeldistance=0.8)
for t in texts:
    t.set_horizontalalignment('center')

plt.show()

我不太明白第二个问题,因为你似乎已经使用以下命令将切片移动了 10 度startangle范围。无论如何,通常最好在不同的帖子中列出单独的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matplotlib 饼图标签对齐 的相关文章

随机推荐