본문 바로가기
데이터 분석/시각화

[파이 차트(Pie chart)] 7. Matplotlib을 이용하여 파이 차트 꾸미기 - 파이 차트에 테두리 추가하기

by 부자 꽁냥이 2020. 8. 4.

안녕하세요~ 꽁냥이에요!

 

이번 포스팅에서는 파이 차트에 테두리를 그려보는 법에 대해서 알아보겠습니다. 


파이 차트에 테두리를 추가하는 방법은 pie함수의 wedgeprops 인자를 이용하면 됩니다. wedgeprops인자에는 딕셔너리를 넣어야 하는데 테두리와 관련된 키는 edgecolor(테두리 색), linestyle(테두리 선스타일), linewidth(테두리 두께)가 있습니다.

 

다음은 wedgeprops인자에 들어갈 딕셔너리의 예를 나타낸 거예요.


   'edgecolor' : 'k',

   'linestyle' : '--',

   'linewidth : 2


자 그럼 파이 차트에 테두리 넣는 것을 코드로 구현해보겠습니다. 아래 코드를 살펴볼게요.

 

import matplotlib.pyplot as plt
 
## 데이터 준비
labels = ['Apple','Banana','Grape','Pear','Peach'] ## 라벨
frequency = [120,120,380,240,200] ## 빈도
 
fig = plt.figure(figsize=(8,8)) ## 캔버스 생성
fig.set_facecolor('white') ## 캔버스 배경색을 하얀색으로 설정
ax = fig.add_subplot() ## 프레임 생성
 
pie = ax.pie(frequency, ## 파이차트 출력
       startangle=90, ## 시작점을 90도(degree)로 지정
       counterclock=False, ## 시계 방향으로 그린다.
       autopct=lambda p : '{:.2f}%'.format(p), ## 퍼센티지 출력
       colors = ['red','yellow','purple','burlywood','lightcoral'], ## 색상 지정
       wedgeprops = {'edgecolor':'k','linestyle':'--','linewidth':2} ## 테두리 속성 지정
       )

plt.legend(pie[0],labels) ## 범례
plt.show()

 

line 16

테두리에 대한 속성을 딕셔너리로 만들어 wedgeprops인자에 전달했습니다(여기서 설명하지 않는 코드는 주석이나 이전 포스팅을 참고해주세요).

 

위 코드를 실행해볼까요?

 

Matplotlib 파이 차트 테두리

파이 차트에 테두리가 그려진 것을 확인할 수 있습니다. 

 

여기서 잠깐!!

 

 

보시면 알겠지만 범례 기호에도 테두리가 생긴 것을 확인할 수 있어요. 여기서 다음과 같은 질문을 할 수 있을 거예요.

 

 

범례의 테두리를 지우는 방법 알려드립니다!! 어렵지 않아요. 그냥 범례 기호를 새롭게 만들어 주면 됩니다. 아래 코드를 통해서 설명드릴게요.

 

import matplotlib.pyplot as plt
import matplotlib.patches as mpt
 
## 데이터 준비
labels = ['Apple','Banana','Grape','Pear','Peach'] ## 라벨
frequency = [120,120,380,240,200] ## 빈도
 
fig = plt.figure(figsize=(8,8)) ## 캔버스 생성
fig.set_facecolor('white') ## 캔버스 배경색을 하얀색으로 설정
ax = fig.add_subplot() ## 프레임 생성
 
pie = ax.pie(frequency, ## 파이차트 출력
       startangle=90, ## 시작점을 90도(degree)로 지정
       counterclock=False, ## 시계 방향으로 그린다.
       autopct=lambda p : '{:.2f}%'.format(p), ## 퍼센티지 출력
       colors = ['red','yellow','purple','burlywood','lightcoral'], ## 색상 지정
       wedgeprops = {'edgecolor':'k','linestyle':'--','linewidth':2} ## 테두리 속성 지정
       )

patches = []
for p in pie[0]:
    ## 기본 사각형 패치를 만들어준다. 색상은 파이 조각에서 가져온다.
    rect = mpt.Rectangle((0,0),1,1,color=p.get_facecolor())
    patches.append(rect)

plt.legend(patches,labels) ## 새로운 범례 생성
plt.show()

 

line 2

범례 기호는 patch라는 것을 이용하여 만드는데요. 그러기 위해서 matplotlib.patches를 임포트 해줍니다.

 

line 23

범례 기호가 사각형이므로 사각형을 만들어줄 거예요. Matplotlib에서는 mpt.Rectangle을 이용하여 범례에 들어갈 사각형을 만들 수 있습니다. 사각형의 색상은 이전 파이 조각과 같아야 하므로 p.get_facecolor()를 이용하여 원래 파이 차트에서 파이 조각의 색상을 가져옵니다(Matplotlib에서 범례를 다루는 방법은 여기를 참고하세요. 꽁냥이가 자세하게 설명해놓았어요).

 

자! 위 코드를 실행해보세요.

 

 

보시는 바와 같이 범례의 테두리가 지워졌습니다~~


이번 포스팅에서는 파이 차트에서 테두리를 그려보는 방법에 대해서 알아보았습니다. 궁금하신 점, 잘못된 점, 하고 싶은 말은 댓글로 남겨주세요~

 

지금까지 꽁냥이의 글 읽어주셔서 감사합니다.


댓글


맨 위로