我有一个关于pie-chart
标签对齐的问题。我想在饼图之外有标签并以每个楔形为中心。根据文档页面,“ labeldistance
”参数可以将标签放置在饼图之外,并且"ha" & "va"
参数应该居中。但是,这两个选项(ha 和 va)似乎不适用于Matplotlib v2.1.0+
. 1)通过这个例子(请看下面),你可以看到“汽车”标签没有正确居中,它有点偏离中心。
import matplotlib.pyplot as plt
figure = plt.figure()
axes = figure.add_subplot(111)
axes.set_aspect(1) # circular pie
y = [1,2,3, 4,8,16,18]
label = ['car','domino', 'romancical','testing1', 'thisisthelonglabel',
'fffffffffffffffffffffffffffffffffffffffffff', 'as']
wedges, texts = plt.pie(y,
radius=1.2,
labels=label,
labeldistance=1.0,
rotatelabels =True,
startangle = 10,
wedgeprops = {"linewidth": 0.7,
"edgecolor": "white"},
textprops = dict(ha="center",
va="center")) # doesn't work
plt.show()
我添加了以下几行以强制标签居中,这有效但禁用了“ labeldistance
”参数。所以我所有的中心都正确,因为我希望标签与饼图圆圈重叠。
wedges, texts = plt.pie(y,
radius=1.2,
labels=label,
labeldistance=1.0,
rotatelabels =True,
startangle = 10,
wedgeprops = {"linewidth": 0.7,
"edgecolor": "white"},
textprops = dict(ha="center",
va="center"))
for t in texts:
t.set_horizontalalignment("center")
t.set_verticalalignment("center")
plt.show()
所以我的问题是,“ ha
”和“ va
”选项是否适用于其他用户?如果有一个解决方案可以labeldistance
在使用.set_horizontalalignment("center")
and时保留 "" ,任何人都可以提出建议set_verticalalignment("center")
吗?
谢谢你。