Следующий пример кода сгенерирует кольцевую диаграмму, которую я буду использовать в качестве примера:
import matplotlib.pyplot as plt
%matplotlib inline
# Following should supposedly set the font correctly:
plt.rcParams['font.family'] = 'sans-serif'
plt.rcParams['font.sans-serif'] = ['Muli'] + plt.rcParams['font.sans-serif']
plt.rcParams['font.weight'] = 'extra bold'
size_of_groups=[12,11,30,0.3]
colors = ['#a1daaa','#bbbbb4','#444511','#1afff2']
import matplotlib as mpl
mpl.rcParams['text.color'] = '#273859'
# Create a pieplot
my_pie,texts,_ = plt.pie(size_of_groups,radius = 1.2,colors=colors,autopct="%.1f%%",
textprops = {'color':'w',
'size':15 #, 'weight':"extra bold"
}, pctdistance=0.75, labeldistance=0.7) #pctdistance and labeldistance change label positions.
labels=['High','Low','Normal','NA']
plt.legend(my_pie,labels,loc='lower center',ncol=2,bbox_to_anchor=(0.5, -0.2))
plt.setp(my_pie, width=0.6, edgecolor='white')
fig1 = plt.gcf()
fig1.show()
Вышеприведенное выводит следующее:
![img](https://i.gyazo.com/8f9fb92a75a6f05cdfa2e3b200c6d609.png)
В основном , это замечательно. Наконец-то я получил симпатичную кольцевую диаграмму!
Но есть еще одна вещь, которую нужно уловить - когда часть кольцевой диаграммы очень мала (например, 0,6%), мне нужно убрать этикетки диаграммы, и, возможно, окрашены в черный цвет вместо этого.
Мне удалось сделать что-то похожее для гистограмм, используя plt.text, но я не думаю, что это будет возможно с диаграммами p ie вообще. Я полагаю, что кто-то определенно уже решал подобную проблему раньше, но я не могу с готовностью найти подходящее решение.