【问题标题】:Matplotlib Pie Chart Labels AlignmentMatplotlib 饼图标签对齐
【发布时间】:2013-09-05 17:20:22
【问题描述】:

我试图在 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()

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

谢谢!

【问题讨论】:

标签: python charts matplotlib


【解决方案1】:

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

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

plt.show()

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

【讨论】:

  • 谢谢!那行得通。当我将切片移动 10 度时,我想在每个切片的开头标记度数。我会单独发布这个问题。
  • 这是我发布的关于第二个问题的新问题。 stackoverflow.com/questions/18645059/…@hackyday