我绘制了一个饼图并旋转了标签:
import pandas as pd
import matplotlib.pyplot as plt
data = { 'T1': [1,1,1,1,1,2,2,2,2,2, 1,1,1,1,1, 2,2,2,2,2, 1,1,1,1,1, 2,2,2,2],
'T2':['A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A',
'B','B', 'B', 'B', 'B', 'B',
'C', 'C', 'C', 'C','C', 'C', 'C',
'D', 'D', 'D', 'D']}
df = pd.DataFrame(data)
df['T1']=df['T1'].astype(str)
fig, ax=plt.subplots()
values2=df['T2'].value_counts().sort_index()
pie1=ax.pie(values2, radius=1.3, autopct='%1.1f%%', labeldistance=0.4,
labels=['one', 'two', 'three', 'four'], rotatelabels=True, startangle=223.5, wedgeprops=dict(width=1, edgecolor='w'));
for tx in pie1[1]:
rot = tx.get_rotation()
tx.set_rotation(rot+90+(1-rot//180)*180)
hole = plt.Circle((0, 0), 0.5, facecolor='white')
plt.gcf().gca().add_artist(hole)
plt.show()
我不能第二次使用starangle来旋转百分比。我怎样才能给予饼图看得更清楚?
现在我试着用途:
for tx in pie1[2]:
rotate = tx.get_rotation()
tx.set_rotation(rotate+90+(1-rotate//180)*180)
1条答案
按热度按时间whitzsjs1#
pie
返回一个列表元组:补丁:* 列表 *
matplotlib.patches.Wedge
示例序列texts:list 标签
Text
示例列表。自动文本:* 列表 *
数字标签的
Text
示例列表。这个只会被退回。因此,您可以将其解包并旋转
//
中的 * 标签/百分比 *:输出: