일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Python
- pytorch
- matplotlib
- 이코테
- 태블로
- SQLD
- pandas
- 데이터분석준전문가
- r
- scikit learn
- ML
- 이것이 코딩테스트다
- Deep Learning Specialization
- Google ML Bootcamp
- IRIS
- ADsP
- tableau
- 딥러닝
- sklearn
- 데이터 분석
- 머신러닝
- 데이터 전처리
- SQL
- 통계
- 시각화
- 파이썬
- 코딩테스트
- 자격증
- 데이터분석
- 회귀분석
- Today
- Total
함께하는 데이터 분석
[Python] Matplotlib 파이 차트 그리기 본문
오늘은 파이 차트를 그려보겠습니다.
라이브러리 불러오기
import matplotlib.pyplot as plt
plt.rc('font', family = 'AppleGothic') # mac
# plt.rc('font', family = 'Malgun Gothic') # window
plt.rc('font', size = 12)
plt.rc('axes', unicode_minus = False) # -표시 오류 잡아줌
데이터 생성 및 파이 차트 그리기
science = ['physics', 'chemistry', 'life', 'earth']
people = [6.8, 8.0, 14.7, 14.9]
plt.figure(figsize = (10, 5))
plt.pie(people, labels = science)
plt.show()
plt.pie를 이용하여 파이 차트를 그려주면 됩니다.
하지만 이렇게 그리면 구체적인 퍼센트를 알 수가 없죠.
파이 차트에 퍼센트를 넣어볼까요?
science = ['physics', 'chemistry', 'life', 'earth']
people = [6.8, 8.0, 14.7, 14.9]
plt.figure(figsize = (10, 5))
plt.pie(people, labels = science, autopct = '%.1f%%')
plt.show()
autopct인자에 %.1f%%를 이용하여
소수점 한자리까지 나타내면서
뒤에 %를 붙여줄 수 있습니다.
이번에는 정각에서부터 파이 차트가 시작하도록 만들어주겠습니다.
science = ['physics', 'chemistry', 'life', 'earth']
people = [6.8, 8.0, 14.7, 14.9]
plt.figure(figsize = (10, 5))
plt.pie(people, labels = science, autopct = '%.1f%%', startangle = 90)
plt.show()
startangle을 90으로 맞춰주면 위와 같이
시계 정각에서부터 그래프가 시작하게 됩니다.
이번에는 물리부터 시계방향으로 바꿔줄까요?
science = ['physics', 'chemistry', 'life', 'earth']
people = [6.8, 8.0, 14.7, 14.9]
plt.figure(figsize = (10, 5))
plt.pie(people, labels = science, autopct = '%.1f%%', startangle = 90, counterclock = False)
plt.show()
이렇게 countercolock = False를 해주면
물리, 화학, 생명, 지구 순으로 그려집니다.
이번에는 파이 차트 사이사이를 약간 띄워볼까요?
파이 차트 공간 만들기
science = ['physics', 'chemistry', 'life', 'earth']
people = [6.8, 8.0, 14.7, 14.9]
explode = [0.03] * 4
plt.figure(figsize = (10, 5))
plt.pie(people, labels = science, autopct = '%.1f%%', startangle = 90, counterclock = False, explode = explode)
plt.show()
이렇게 일정하게 0.03만큼 explode를 이용하여
공간을 만들어줬습니다.
하지만 약간 울퉁불퉁하게 딱 맞아떨어지지 않는 것을 볼 수 있죠.
그 부분은 뒤에서 다른 방법으로 해결해볼게요.
그림자 설정
plt.figure(figsize = (10, 5))
plt.pie(people, labels = science, autopct = '%.1f%%', startangle = 90,\
counterclock = False, explode = explode, shadow = True)
plt.show()
shadow = True를 이용하여 그림자를 설정해줬습니다.
다음은 늘 하던대로 범례와 타이틀을 달아줘 보겠습니다.
타이틀과 범례 달기
plt.figure(figsize = (10, 5))
plt.title('2022학년도 과학탐구 응시자 수')
plt.pie(people, labels = science, autopct = '%.1f%%', startangle = 90,\
counterclock = False, explode = explode, shadow = True)
plt.legend(loc = (1, 0.6), title = '과학탐구')
plt.show()
너무 많이 해봤어서 다들 잘 아실 거라 생각합니다.
색깔 설정하기
colors = ['aqua', 'pink', 'yellow', 'lightgreen']
plt.figure(figsize = (10, 5))
plt.title('2022학년도 과학탐구 응시자 수')
plt.pie(people, labels = science, autopct = '%.1f%%', startangle = 90,\
counterclock = False, explode = explode, colors = colors)
plt.legend(loc = (1, 0.6), title = '과학탐구')
plt.show()
색깔도 마찬가지로 colors인자를 통해
리스트를 만들어서
각각의 색깔을 설정해줄 수 있습니다.
도넛 형태의 파이 차트 그리기
colors = ['aqua', 'pink', 'yellow', 'lightgreen']
wedgeprops = {'width' : 0.75}
plt.figure(figsize = (10, 5))
plt.title('2022학년도 과학탐구 응시자 수')
plt.pie(people, labels = science, autopct = '%.1f%%', startangle = 90,\
counterclock = False, explode = explode,\
colors = colors, wedgeprops = wedgeprops)
plt.legend(loc = (1, 0.6), title = '과학탐구')
plt.show()
wedgeprops를 이용하여 width를 0.75로 설정하여
도넛 모양처럼 가운데에 구멍이 뚫린 것을 알 수 있습니다.
근데 자세히 보시면 아까 말씀드린 것처럼
간격이 삐뚤삐뚤해 보이죠.
explode 말고 다른 방법으로 반듯하게 바꿔주겠습니다.
파이 차트 반듯하게 그리기
colors = ['aqua', 'pink', 'yellow', 'lightgreen']
wedgeprops = {'width' : 0.75, 'edgecolor' : 'w', 'linewidth' : 3}
plt.figure(figsize = (10, 5))
plt.title('2022학년도 과학탐구 응시자 수')
plt.pie(people, labels = science, autopct = '%.1f%%', startangle = 90,\
counterclock = False, colors = colors, wedgeprops = wedgeprops)
plt.legend(loc = (1, 0.6), title = '과학탐구')
plt.show()
explode를 빼고 wedgeprops에
edgecolor를 흰색으로 설정하고
linewidth를 설정하여 반듯하게 만들어주었습니다.
이제 마지막으로 안의 비율이 적힌 글자를 이동시켜주겠습니다.
퍼센트 글자 이동
plt.figure(figsize = (10, 5))
plt.title('2022학년도 과학탐구 응시자 수')
plt.pie(people, labels = science, autopct = '%.1f%%', startangle = 90,\
counterclock = False, colors = colors, wedgeprops = wedgeprops,\
pctdistance = 0.8)
plt.legend(loc = (1, 0.6), title = '과학탐구')
plt.show()
plt.pie에서 pctdistance인자를 사용하여
중심으로부터 0.8만큼 떨어지게 만들어줬습니다.
여기까지 파이 차트 그리는 법을 알아봤습니다.
다음에는 boxplot 그리는 법을 알아보겠습니다!
'데이터분석 공부 > Python' 카테고리의 다른 글
[Python] Matplotlib violinplot 그리기 (0) | 2022.04.12 |
---|---|
[Python] Matplotlib boxplot 그리기 (0) | 2022.04.12 |
[Python] Matplotlib 다중 막대그래프 (0) | 2022.04.08 |
[Python] Matplotlib 누적 막대그래프 (0) | 2022.04.05 |
[Python] Matplotlib 막대그래프 그리기 (2) | 2022.04.04 |