Python/matplotlib

[python matplotlib] pyplot 파이 챠트 - pie

언제나휴일 2020. 11. 23. 09:34
반응형

안녕하세요. 언제나휴일입니다.

이번에는 matplotlib.pyplot으로 파이 챠트를 그리는 pie 함수를 알아볼게요.

 

0. 함수 원형

pie 함수는 필수적으로 전달할 인자인 x와 14개의 선택적으로 전달할 수 있는 인자가 있습니다.

하나씩 사용하면서 Look & Feel 해 봅시다.

#파이 챠트
#matplotlib.pyplot.pie(x, 
#                                 explode=None, 
#                                 labels=None, 
#                                 colors=None, 
#                                 autopct=None, 
#                                 pctdistance=0.6, 
#                                 shadow=False, 
#                                 labeldistance=1.1, 
#                                 startangle=None, 
#                                 radius=None, 
#                                 counterclock=True, 
#                                 wedgeprops=None, 
#                                 textprops=None, 
#                                 center=(0, 0), 
#                                 frame=False, 
#                                 rotatelabels=False)

1. 파이 그리기

최소한 wedge 사이즈 목록을 인자로 전달해야 합니다.

import matplotlib.pyplot as plt
#1. x : array-like
incomes = [12, 34, 56, 78]
plt.pie(incomes)
plt.title("x")
plt.show()

pie 그리기

2. explode

각 항목을 파이의 원점에서 튀어 나오는 정도를 나타냅니다.

#2. explode : array-like, default None
explodes =(0.1,0,0,0)
plt.pie(incomes,explode=explodes)
plt.title("set explode")
plt.show()

explode

3. labels

각 항목의 이름을 지정합니다.

#3. set label : list, default None
labels = 'A', 'B', 'C', 'D'
plt.pie(incomes,explode=explodes,labels=labels)
plt.title("set labels")
plt.show()

labels 설정

4. colors

각 항목의 색을 지정할 수 있습니다.

#4. colors : array-like, default None
colors =["red","green","blue","violet"]
plt.pie(incomes,explode=explodes,labels=labels,colors=colors)
plt.title("set colors")
plt.show()

 color 설정

5. autopct

각 항목의 퍼센트를 표시합니다.

#5. autopct : string, default None
plt.pie(incomes,explode=explodes,labels=labels,autopct='%.2f')
plt.title("set autopct")
plt.show()

autopct 사용

6. pctdistance

퍼센트를 표시할 위치를 지정할 수 있습니다.

중앙에서의 거리이며 디폴트는 0.6입니다.

#6. pctdistance : float, default 0.6
plt.pie(incomes,explode=explodes,labels=labels,autopct='%.2f',pctdistance=0.8)
plt.title("set pctdistance")
plt.show()

pctdistance를 0.8로 설정

7. shadow

그림자를 나타낼 것인지 여부를 설정합니다.

#7. shadow : bool, default False
plt.pie(incomes,explode=explodes,labels=labels,shadow=True)
plt.title("set shadow")
plt.show()

shadow 설정

8. labeldistance

레이블을 표시할 거리를 설정합니다.

중앙에서의 거리이며 디폴트 값은 1.1입니다.

#8. labeldistance : float default: 1.1
plt.pie(incomes,explode=explodes,labels=labels,labeldistance=1.5)
plt.title("set labeldistance")
plt.show()

labeldistance를 1.5로 설정

9. startangle

x축에서 반시계 방향으로의 시작 각도를 설정합니다.

#9. startangle : float default None
plt.pie(incomes,explode=explodes,labels=labels,startangle=90)
plt.title("set startangle")
plt.show()

startangle을 90으로 설정

10. radius

파이의 반지름을 설정합니다. 디폴트 값은 1입니다.

#10. radius : float, default None
plt.pie(incomes,explode=explodes,labels=labels,radius=0.7)
plt.title("set radius")
plt.show()

radius를 0.7로 설정

11. counterclock

각 항목을 표현하는 방향을 시계방향으로 할 것인지 여부입니다. 디폴트는 True입니다.

# 11. counterclock : bool, default True
plt.pie(incomes,explode=explodes,labels=labels,counterclock=False)
plt.title("set counterclock")
plt.show()

counterclock을 False로 지정

12. wedgeprops

웨지 속성을 설정합니다.

#12. wedgeprops : dict, default None
wedgeprops=dict(edgecolor='black',linewidth=3,linestyle=':')
plt.pie(incomes,explode=explodes,labels=labels,wedgeprops=wedgeprops)
plt.title("set wedgeprops")
plt.show()

웨지 특성을 설정(색:검정, 두께:3, 라인스타일:':')

13. textprops

레이블의 text 속성을 설정합니다.

#13. textprops : dict, default None
textprops = dict(rotation=15,size=12, weight=3,color="red")
plt.pie(incomes,explode=explodes,labels=labels,textprops=textprops)
plt.title("set textprops")
plt.show()

텍스트 속성 지정(회전:15, 크기:12, 두께:3, 색: RED)

14. center

챠트의 중심을 설정합니다. 디폴트는 (0,0)입니다.

15. frame

챠트의 X, Y 축을 표현할 지 여부를 설정합니다. 디폴트는 False입니다.

#14. center : list of float, default (0,0)
#15. frame :bool , default False
plt.pie(incomes,explode=explodes,labels=labels,center=(0.5,0.5),frame=True,radius=0.5)
plt.title("set center and frame")
plt.show()

center를 (0.5, 0.5), radius=0.5, frame=True

16. rotatelabels

레이블을 각 항목의 방향에 맞게 회전할 지 여부를 설정합니다. 디폴트는 False입니다.

#16. rotatelabels : bool, default False
pie = plt.pie(incomes,explode=explodes,labels=labels,rotatelabels=True)
plt.title("set rotatelabels")
plt.show()

rotatelabels를 True로 설정

17. 전체 코드

#파이 챠트
#matplotlib.pyplot.pie(x, 
#                                 explode=None, 
#                                 labels=None, 
#                                 colors=None, 
#                                 autopct=None, 
#                                 pctdistance=0.6, 
#                                 shadow=False, 
#                                 labeldistance=1.1, 
#                                 startangle=None, 
#                                 radius=None, 
#                                 counterclock=True, 
#                                 wedgeprops=None, 
#                                 textprops=None, 
#                                 center=(0, 0), 
#                                 frame=False, 
#                                 rotatelabels=False)
import matplotlib.pyplot as plt
import matplotlib.patches as ptc
#1. x : array-like
incomes = [12, 34, 56, 78]
plt.pie(incomes)
plt.title("x")
plt.show()

#2. explode : array-like, default None
explodes =(0.1,0,0,0)
plt.pie(incomes,explode=explodes)
plt.title("set explode")
plt.show()

#3. set label : list, default None
labels = 'A', 'B', 'C', 'D'
plt.pie(incomes,explode=explodes,labels=labels)
plt.title("set labels")
plt.show()

#4. colors : array-like, default None
colors =["red","green","blue","violet"]
plt.pie(incomes,explode=explodes,labels=labels,colors=colors)
plt.title("set colors")
plt.show()

#5. autopct : string, default None
plt.pie(incomes,explode=explodes,labels=labels,autopct='%.2f')
plt.title("set autopct")
plt.show()

#6. pctdistance : float, default 0.6
plt.pie(incomes,explode=explodes,labels=labels,autopct='%.2f',pctdistance=0.8)
plt.title("set pctdistance")
plt.show()

#7. shadow : bool, default False
plt.pie(incomes,explode=explodes,labels=labels,shadow=True)
plt.title("set shadow")
plt.show()

#8. labeldistance : float default: 1.1
plt.pie(incomes,explode=explodes,labels=labels,labeldistance=1.5)
plt.title("set labeldistance")
plt.show()

#9. startangle : float default None
plt.pie(incomes,explode=explodes,labels=labels,startangle=90)
plt.title("set startangle")
plt.show()

#10. radius : float, default None
plt.pie(incomes,explode=explodes,labels=labels,radius=0.7)
plt.title("set radius")
plt.show()

# 11. counterclock : bool, default True
plt.pie(incomes,explode=explodes,labels=labels,counterclock=False)
plt.title("set counterclock")
plt.show()

#12. wedgeprops : dict, default None
wedgeprops=dict(edgecolor='black',linewidth=3,linestyle=':')
plt.pie(incomes,explode=explodes,labels=labels,wedgeprops=wedgeprops)
plt.title("set wedgeprops")
plt.show()

#13. textprops : dict, default None
textprops = dict(rotation=15,size=12, weight=3,color="red")
plt.pie(incomes,explode=explodes,labels=labels,textprops=textprops)
plt.title("set textprops")
plt.show()

#14. center : list of float, default (0,0)
#15. frame :bool , default False
plt.pie(incomes,explode=explodes,labels=labels,center=(0.5,0.5),frame=True,radius=0.5)
plt.title("set center and frame")
plt.show()

#16. rotatelabels : bool, default False
pie = plt.pie(incomes,explode=explodes,labels=labels,rotatelabels=True)
plt.title("set rotatelabels")
plt.show()
반응형