如何在python中对齐图例?

时间:2019-07-19 21:31:48

标签: python matplotlib charts

我正在尝试使图例保持一致。即使我将字符串的大小设置为相同大小,字体也似乎无法对齐。

我希望百分比与底部的百分比保持一致。

import numpy as np
import matplotlib.pyplot as plt


fig, ax = plt.subplots(figsize=(5, 5))

data = list(df['Preço'])

total = df['Preço'].sum()
l = []
for x in list(df['Preço']):
    l.append("{0:.1%}".format(x/total))   
l

ativos = [x + ((maxlen - len(x)) * ' ' ) + '    ' for x in list(df['Nome do Ativo'])]
for i in range(len(l)):
    ativos[i] = ativos[i] + ((5 - len(l[i]))*' ') + l[i]


wedges, autotexts = ax.pie(data)

leg = ax.legend(wedges, ativos, title="Ativos \n", loc='lower center' , bbox_to_anchor=(0.5, -0.50, 0, 1), labelspacing=0.15)


plt.setp(autotexts, size=0)
ax.set_title(r"Composição")
plt.show()

enter image description here`

1 个答案:

答案 0 :(得分:0)

欢迎使用Stackoverflow。

之所以发生这种情况,是因为图例的标准字体中的字符不同 具有不同的宽度。我假设文本看起来是对齐的,例如, 终端窗口,因为此类窗口通常使用固定宽度的字体。

最简单的解决方法是将图例字体设置为 固定宽度的字体,例如Courier。 This answer向您展示了如何做到这一点,