gpt4 book ai didi

python - matplotlib 饼图 : rotate labels horizontally

转载 作者:太空宇宙 更新时间:2023-11-04 08:34:31 24 4
gpt4 key购买 nike

使用 matplot 通过以下代码创建一个小仪表:

    group_size=[10,10,10,10,10,50]
labels=['AAAA','BBBB','CCCC','DDDD','EEEE','']
fig, ax = plt.subplots()
ax.axis('equal')
pie = ax.pie(group_size, radius=2.2, colors=['k'] ,startangle=180,counterclock=False)
pie2 = ax.pie([10,10,10,10,10,50], radius=2, labeldistance=0.7, labels=labels, rotatelabels = 270,
startangle=180,counterclock=False)
plt.show()

我试图让标签水平移动并与每个楔形的中点对齐(但楔形内的文本):

enter image description here

使用 rotatelabel=True,我得到以下信息:

enter image description here

关于如何实现图表标签的水平旋转有什么想法吗?

最佳答案

您需要手动旋转饼图标签。为此,您可以遍历标签并根据需要设置旋转。

group_size=[10,10,10,10,10,50]
labels=['AAAA','BBBB','CCCC','DDDD','EEEE','']
fig, ax = plt.subplots()
ax.axis('equal')
pie = ax.pie(group_size, radius=2.2, colors=['k'] ,startangle=180,counterclock=False)
pie2 = ax.pie([10,10,10,10,10,50], radius=2, labeldistance=0.9, labels=labels,
rotatelabels =True, startangle=180,counterclock=False)

plt.setp(pie2[1], rotation_mode="anchor", ha="center", va="center")
for tx in pie2[1]:
rot = tx.get_rotation()
tx.set_rotation(rot+90+(1-rot//180)*180)

plt.show()

enter image description here

关于python - matplotlib 饼图 : rotate labels horizontally,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50235752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com