Matplotlib 라이브러리는 파이썬에서 그래프를 그릴 때,
가장 많이 사용하는 대표 라이브러리입니다.
기본이 되는 여러 그래프 중
이번 포스팅에서는 파이 차트를 실습해 볼게요.
앞선 포스팅과 마찬가지로
아래 2가지 기본적인 환경 세팅을 하겠습니다.
① matplotlib 라이브러리 사용 정의
② 그래프에서 환경설정이 가능하도록 폰트 설정
③ 한글 사용이 (-) 부호가 깨지는 현상 방지
import matplotlib.pyplot as plt # matplotlib 라이브러리 load
## 한글 사용 가능하도독 폰트 설정
import matplotlib
matplotlib.rcParams['font.family'] = 'Malgun Gothic' # os: window
matplotlib.rcParams['axes.unicode_minus'] = False # 한글 폰트 사용 시 (-) 부호 깨짐 현상 해결
이렇게 설정하면,
그래프에 한글과 (-) 부호 사용에 대한 걱정이 없어요.
실습을 위해 매우 간단한 데이터를 생성해 볼게요.
실습 데이터는 iris 붓꽃 데이터입니다.
아래 파일을 다운받으세요.
### 실습 데이터 생성
## iris data 가져오기
irisData = pd.read_csv("D:/Python_apply/iris.csv")
## 칼럼명 확인하기
irisData.columns
## ## 붓꽃 종류별 평균 SepalLength SepalWidth PetalLength PetalWidth 구하기
df = irisData.groupby('Species').mean()
자 이제 기본 그래프부터
몇 가지 옵션을 추가하면서 그려 볼게요.
파이 차트 기본 그래프 그리기(.pie())
위의 데이터를 이용해서 가장 기본적인 파이 차트 그래프를 그려 볼게요.
## 파이차트 그리기
## 기본
plt.pie(df['SepalLength']) # SepalLength을 이루는 카테고리 비율로 그림 그리기
라벨 및 비율 추가
기본 그래프에
라벨과 비율을 추가해 볼게요.
## 라벨 추가
plt.pie(df['SepalLength'], labels = df.index)
## 비율 추가
plt.pie(df['SepalLength'], labels = df.index, autopct = '%.1f%%')
그리기 시작점 및 방향 변경
파이 그래프는 그리기의 시작점이
오후 3시 방향이에요.
이 지점을 기준으로 반 시계 방향으로
그리게 됩니다.
옵션을 통해
그리기의 시작점과 방향을
변경할 수 있어요.
## 파이 차트 그리기 시작점 변경
plt.pie(df['SepalLength'], labels = df.index, autopct = '%.1f%%', startangle = 90)
## 파이 차트 그리기 시작점 변경(시계 방향)
plt.pie(df['SepalLength'], labels = df.index, autopct = '%.1f%%', startangle=90, counterclock=False)
파이 조각 내기
특정 카테고리를 강조하기 위해
별도 파이 조각으로 구분할 수도 있어요.
구분하고, 추가적으로 범례를 달아볼게요.
## 파이 차트 조각 내기
plt.pie(df['SepalLength'], labels = df.index, autopct = '%.1f%%', explode = [0, 0, 0.2])
## 범례 달기
plt.pie(df['SepalLength'], labels = df.index, autopct = '%.1f%%', explode = [0, 0, 0.2])
plt.legend(loc = (1.2, 0.25), title = '붓꽃 종류')
explode = [0, 0, 0.2]의 의미는
세 번째 카테고리만 0.2 크기만큼 분리하겠다는 뜻입니다.
plt.legend(loc = (1.2, 0.25), title = '붓꽃 종류')의 의미는
범례의 위치를 기본 그래프 밖으로
0.2 크기만큼 보내고,
아래서 0.25 크기만큼 위로 보내겠다는 의미입니다.
파이 스타일 변경하기
파이의 색상을 변경하고,
도넛 모양으로도 변경할 수 있어요.
## 색상 변경하기
plt.pie(df['SepalLength'],
labels = df.index,
autopct = '%.1f%%',
explode = [0.05]*3,
colors = ['#ffadad','#ffd6a5','#fdffb6'])
## 도넛 모양으로 변경하기 1
plt.pie(df['SepalLength'],
labels = df.index,
autopct = '%.1f%%',
explode = [0.05]*3,
colors = ['#ffadad','#ffd6a5','#fdffb6'],
wedgeprops = {'width':0.7})
## 도넛 모양으로 변경 후 옵션 추가
plt.pie(df['SepalLength'],
labels = df.index,
autopct = '%.1f%%',
colors = ['#ffadad','#ffd6a5','#fdffb6'],
wedgeprops = {'width':0.7, 'edgecolor':'w', 'linewidth' : 3})
도넛 모양으로 변경하기 위해서
wedgeprops 옵션을 사용했어요.
(인수를 딕셔너리 형태로 받는다는 점 기억하세요.)
wedgeprops = {'width':0.7}의 의미는
도넛 모양으로 변경하되,
파이 차트의 전체를 1로 보고
0.7의 면적만큼 도넛 모양으로 그리겠다는 걸로 이해하시면 돼요.
0.1 ~ 1까지 변경하면서 그려 보시면
바로 이해되실 거예요.
그리고,
'edgecolor':'w', 'linewidth' : 3 옵션은
도넛 테두리 색상을 'white'로 하고,
선 두께를 3으로 표현하겠다는 뜻입니다.
세 번째 그래프를 보시면,
explode 인수가 제외되면서,
'linewidth' 옵션으로 동일한 효과를 낸 걸 보실 수 있을 거예요.
일정 비율 이상만 비율로 나타내기
또한 일정 비율 이상일 경우에만 비율을 나타낼 수 있습니다.
def customPct(pct) :
return ('%.1f%%' % pct) if pct >= 30 else ''
plt.pie(df['SepalLength'],
labels = df.index,
autopct = customPct,
explode = [0.05]*3,
colors = ['#ffadad','#ffd6a5','#fdffb6'],
wedgeprops = {'width':0.7, 'edgecolor':'w', 'linewidth' : 3})
비율을 나타내는 text 위치 조정하기
비율을 나타내는 text의 위치를 조정할 수 있어요.
plt.pie(df['SepalLength'],
labels = df.index,
autopct = "%0.1f%%",
explode = [0.05]*3,
colors = ['#ffadad','#ffd6a5','#fdffb6'],
wedgeprops = {'width':0.7, 'edgecolor':'w', 'linewidth' : 1},
pctdistance = 0.7)
pctdistance = 0.7의 의미는
파이 차트의 중앙으로부터 거리 비율을 나타냅니다.
0에 가까울수록 파이차트 중앙으로 모이게 되고,
1에 가까울 수록 점점 멀어지게 됩니다.
'Python > 데이터 시각화' 카테고리의 다른 글
막대그래프에 도형(타원) 삽입하기 (0) | 2022.04.16 |
---|---|
워드 클라우드(Word Cloud) 생성하기(with 파이썬 DataFrame) (0) | 2022.02.28 |
matplotlib 산점도 그리기 (0) | 2022.02.27 |
matplotlib 막대그래프 그리기 (0) | 2022.02.25 |
matplotlib 선 그래프 그리기 (0) | 2022.02.20 |
댓글