5.4.3 파이 차트
① 함수 pie()로 활용한 파이 차트
파이 차트는 원형의 파이 조각을 나눈 것처럼 데이터의 상대 비율을 그리는 원형 그래프이다. 파이 차트는 함수 pie()를 사용해 그린다.
다음 함수 pie([10, 20, 30, 40], labels=fruits)는 데이터 [10, 20, 30, 40]를 각각의 레이블 fruits를 붙여 파이 차트를 그린다.
fruits = ["Oranges", "Apples", "Bananas", "Cherries"]
plt.pie([10, 20, 30, 40], labels=fruits);
데이터 mtc의 변수 cyl의 값을 실린더 수에 따라 오름차순으로 정렬해 빈도수를 알아보자.
mtc.cyl.value_counts().sort_index()
# 5.4.3 11
# 5.4.3 7
# 5.4.3 14
# 5.4.3 Name: cyl, dtype: int64
다음으로 변수 cyl의 명목 값인 4, 6, 8의 값을 확인할 수 있다.
mtc.cyl.value_counts().sort_index().index
# 5.4.3 Int64Index([4, 6, 8], dtype='int64')
다음으로 변수 cyl의 명목 값인 4, 6, 8에 문자열 ‘ 기통’을 붙여 리스트를 만든 후, 변수 txt에 저장한다.
txt = [str(i) + ' 기통' for i in mtc.cyl.value_counts().sort_index().index]
print(txt)
# 5.4.3 ['4 기통', '6 기통', '8 기통']
다음으로 파이 차트의 제목을 지정하고 색상과 함께 위에서 만든 txt를 인자 labels에 지정해 파이 차트를 그려보자. 인자 autopct='%.1f%%'로 백분율로 비율을 표시한다.
plt.pie(mtc.cyl.value_counts().sort_index(), colors=["violet", "pink", "aqua"],
autopct='%.1f%%', labels=txt)
plt.title("기통 수에 따른 자동차 비율");
② 파이 차트의 다양한 패러미터
내장 데이터 mtcars의 변수 gear의 빈도 수를 알기 위해 함수 mtc.gear.value_counts().sort_index()를 사용한다.
mtc.gear.value_counts().sort_index()
# 5.4.3 15
# 5.4.3 12
# 5.4.3 5
# 5.4.3 Name: gear, dtype: int64
다음으로 파이 차트의 레이블로 사용하기 위한 문자 리스트를 만든다. 리스트 컴프리헨션을 사용하여 변수 i는 명목 이름인 3, 4, 5를 반환하며 이를 ‘ 기어’와 연결해 리스트를 생성한다.
labels = [str(i) + ' 기어' for i in mtc.gear.value_counts().sort_index().index]
print(labels)
# 5.4.3 ['3 기어', '4 기어', '5 기어']
색상 3개를 자동으로 만들기 위해 팔레트 'Accent'에서 3개의 색상을 colors에 저장한다.
# 5.4.3 라벨의 개수만큼 색상 리스트 생성
colors = sns.color_palette('Accent', len(labels))
print(colors)
각각의 파이를 떨어뜨리는 효과인 explode=[0, .1, 0], 라벨을 붙이는 labels, 색상을 설정하는 colors, 숫자 값을 라벨로 표시하는 autopct, 그리고 그림자 효과를 추가하는 shadow, 시작 파이의 위치를 돌리는 startangle 등의 인자를 사용해 다양한 그림을 그릴 수 있다.
colors = sns.color_palette('Accent', len(txt)) # 라벨의 개수 만큼 색상 리스트 생성
plt.pie(mtc.gear.value_counts().sort_index(), colors=colors, explode=[0, .1, 0],
shadow=True, startangle=90, autopct='%.1f%%', labels=labels)
plt.title("기어 수에 따른 자동차 비율");