标签对齐网饼图/matplotlib 2.1.0+;
我有一个关于标签对齐网饼图/matplotlib 2.1.0+;,matplotlib,label,alignment,pie-chart,labeling,Matplotlib,Label,Alignment,Pie Chart,Labeling,我有一个关于饼图标签对齐的问题。 我希望在饼图外有标签,并以每个楔子为中心。 根据文档页面,“labeldistance”参数允许将标签放置在饼图外,“ha”和“va”参数应居中。但是,这两个选项(ha和va)似乎不适用于Matplotlib v2.1.0+。 1) 通过这个示例(请参见下文),您可以看到“汽车”标签没有正确居中,它有点偏离中心 import matplotlib.pyplot as plt figure = plt.figure() axes = figure.add_subp
饼图标签对齐的问题。
我希望在饼图外有标签,并以每个楔子为中心。
根据文档页面,“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
”选项是否适用于其他用户?
在使用.set\u horizontalalignment(“center”)
和set\u verticalalignment(“center”)
时,是否有办法保持“标签距离”
多谢各位 在matplotlib 3.0.2和2.1.2中,使用
textprops = dict(va="center", rotation_mode = 'anchor')
(和labeldistance=1.05
)导致
请注意,这样就省去了ha=“center”
选项,因为最好根据标签是在圆的左侧还是右侧自动设置水平对齐
有关旋转模式的说明,请参见例如或。您正在将水平和垂直对齐设置为“中心”,但只需将垂直对齐设置为“中心”。换句话说,删除行ha=“center”
和t.set\u水平对齐(“center”)
。如果有任何问题,请将水平对齐设置为“左”。另请参见,它可能是相关的。对于我来说,在2.2.2中,两个代码都会生成第二个figure@ThomasKühn:隐藏ha
或将其设置为左侧似乎也不起作用work@Bazingaa我只有Maplotlib 3.0.2可用。