안녕하세요~ 꽁냥이에요!!
카테고리별 또는 그룹별 통계치를 시각화하고자 할 때 사용할 수 있는 그래프로 바 차트와 더불어 파이 차트가 있습니다. 특히 파이 차트(원 그래프 또는 원형 차트)는 통계치의 값뿐 아니라 비율에 대한 정보를 직관적으로 전달할 수 있다는 장점이 있습니다.
꽁냥이는 그중에서 파이 차트(Pie chart)를 다룰 거예요. 이번 포스팅에서는 Matplotlib을 이용하여 파이 차트를 그리는 기본적인 방법에 대해서 소개하려고 합니다. Matplotlib을 이용하여 바 차트를 그리는 방법에 대해서는 아래 포스팅을 참고하세요.
바 차트 그리기 : https://zephyrus1111.tistory.com/8
그럼 시작해볼까요?
1. 데이터 준비하기
먼저 이번 포스팅에서 사용할 임시데이터를 아래와 같이 만들어줍니다.
## 데이터 준비
labels = ['Apple','Banana','Grape','Pear','Peach'] ## 라벨
frequency = [20,20,380,240,200] ## 빈도
2. 파이 차트 그리기
Matplotlib에서는 pie 함수를 이용하여 파이 차트를 그릴 수 있어요. 다음은 pie 함수의 기본적인 사용법입니다.
pie( 숫자 리스트, 라벨, 퍼센트형식 )
아래의 코드를 살펴보겠습니다.
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(8,8)) ## 캔버스 생성
fig.set_facecolor('white') ## 캔버스 색상 하얀색
ax = fig.add_subplot() ## 프래임 생성
ax.pie(x=frequency,labels=labels,autopct=lambda p : '{:.2f}%'.format(p)) ## 파이 차트 출력
plt.show()
line 8
먼저 pie함수 x인자에 파이 차트로 표시할 데이터를 labels 인자에는 카테고리를 리스트로 넣어줍니다. 이를 이용하여 각 카테고리에 대응하는 데이터를 크기에 비례하여 파이 차트를 그려줍니다.
그리고 autopct는 자동으로 퍼센티지를 텍스트로 표시해주는 인자입니다. 여기에는 문자열과 위 코드와 같이 함수가 들어갈 수 있습니다. autopct에 함수를 넣었다면 함수에 들어가는 인자(여기서는 p)에는 데이터의 백분율이 들어가게 됩니다. 꽁냥이는 백분율을 소수 둘째 자리까지만 표시하기 위해 '.2f' 옵션을 넣었습니다.
autopct에 문자열로 사용할 때는 '%'에 백분율이 표시되고 '%'뒤에는 백분율을 표시할 형식을 지정합니다. 예를 들어 autopct='%.2f%%'이면 앞에 있는 '%'에 백분율이 표시되고요. 뒤에 있는 '.2f'는 백분율을 소수 둘째 자리까지 나타내겠다는 것입니다. 그리고 퍼센트를 표시하고 싶을 때는 '%'한 개가 아닌 '%%'두 개로 넣어줘야 퍼센트가 올바르게 표시됩니다.
눈치 채신 분도 있겠지만 위 코드 8번째 줄과 아래 코드는 동일합니다.
ax.pie(x=frequency,labels=labels,autopct='%.2f%%')
꽁냥이는 문자열 보다는 함수로 autopct를 지정할 것을 추천합니다. 왜냐하면 함수로 지정하면 코드 해석이 쉽고 문자열은 '%'의 사용이 이해가 잘 안되기 때문이에요.
위 코드를 실행해 볼까요?
파이 차트가 잘 그려진 것을 확인할 수 있습니다. 또한 백분율도 소수 둘째자리까지 표시된것도 알 수 있습니다.
지금까지 파이 차트를 그리는 기본적인 방법에 대해서 알아보았습니다. 다음 포스팅에서는 파이 차트를 더 멋지게 꾸며 보는 방법에 대해서 알아보겠습니다.
궁금한 점, 잘못된 점, 그 밖에 하고 싶은 말은 댓글로 남겨주세요.
꽁냥이의 글 읽어주셔서 감사합니다.
'데이터 분석 > 시각화' 카테고리의 다른 글
[파이 차트(Pie chart)] 3. Matplotlib을 이용하여 파이차트 꾸미기 - 시계 방향, 반시계 방향으로 그리기 (0) | 2020.07.26 |
---|---|
[파이 차트(Pie chart)] 2. Matplotlib을 이용하여 파이차트 꾸미기 - 파이 차트 시작점 지정하기 (0) | 2020.07.25 |
[선 그래프(Line graph)] 3. Matplotlib을 이용하여 여러 개 선 그래프 겹쳐 그리기 (2) | 2020.07.13 |
[범례(Legend)] 5. Matplotlib을 이용한 범례그리기 - 범례 라벨 순서 바꾸기 (0) | 2020.07.12 |
[범례(Legend)] 4. Matplotlib을 이용한 범례 그리기 - 범례 박스 꾸미기 (400) | 2020.07.11 |
댓글