我正在尝试使图例保持一致。即使我将字符串的大小设置为相同大小,字体也似乎无法对齐。
我希望百分比与底部的百分比保持一致。
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()
答案 0 :(得分:0)
欢迎使用Stackoverflow。
之所以发生这种情况,是因为图例的标准字体中的字符不同 具有不同的宽度。我假设文本看起来是对齐的,例如, 终端窗口,因为此类窗口通常使用固定宽度的字体。
最简单的解决方法是将图例字体设置为 固定宽度的字体,例如Courier。 This answer向您展示了如何做到这一点,