如何改善 pyplot 饼图中分数标签的旋转?

3

我复制了以下示例代码并进行了轻微更改。我想将分数以一定角度旋转。我实现了我的目标,但我的问题是是否有更简单的方法可以旋转分数:

import matplotlib.pyplot as plt
import matplotlib

# Data to plot
labels = 'Python', 'C++', 'Ruby', 'Java'
sizes = [215, 130, 245, 210]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0.1, 0, 0, 0)  # explode 1st slice

# Plot
pie_properties = plt.pie(sizes,  labels=labels, colors=colors,
        autopct='%1.1f%%', shadow=False, startangle=140, pctdistance=0.8, radius = 0.5)

# Rotate fractions
# [0] = wedges, [1] = labels, [2] = fractions
fraction_text_list = pie_properties[2]
for text in fraction_text_list:
    text.set_rotation(315)

plt.axis('equal')
plt.show()

有没有可能改进这个问题?

在此输入图片描述


尝试使用 plt.pie(sizes, labels=labels, ..., textprops={'rotation': 315}, ...) - Paul H
(那可能只影响外部标签) - Paul H
谢谢您的回答!不幸的是,它会影响所有文本属性。 - Morlord
1个回答

7

这个问题中旋转自动百分比标签的方法已经非常简单。如果你所谓的“更容易”指的是“更短”,你可以把整个命令放在一行中:

import matplotlib.pyplot as plt

# Data to plot
labels = 'Python', 'C++', 'Ruby', 'Java'
sizes = [215, 130, 245, 210]
colors = ['gold', 'yellowgreen', 'lightcoral', 'lightskyblue']
explode = (0.1, 0, 0, 0)  # explode 1st slice

# Plot
w,l,p = plt.pie(sizes,  labels=labels, colors=colors,
        autopct='%1.1f%%', startangle=140, pctdistance=0.8, radius = 0.5)
[t.set_rotation(315) for t in p]

plt.axis('equal')
plt.show()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接