ㅅㅇ
matplotlib_ 02_4 각종 그래프 그리기 _ 파이차트 (Pie Chart) 본문
matplotlib_ 02_4 각종 그래프 그리기 _ 파이차트 (Pie Chart)
SO__OS 2022. 6. 16. 20:13Pandas_ 02_4 각종 그래프 그리기 _ 파이차트 (Pie Chart)
1. 파이차트 Pie Chart
- 각 범주(Category)가 데이터에서 차지하는 '비율' 을 나타내는데 사용
- pie(x, labels = 대상, )
- x : 값 (값들을 100을 기준으로 비율을 알아서 계산해 크기 설정)
- labels : 값들의 label
- 세번째 매개변수이기에 키워드 인자로 써주기
- autopct : 조각내에 표시될 비율의 문자열 형식. '%fmt문자'
- fmt문자: f(실수), d(정수), %% (%)
- 파이 차트를 좌표평면으로 생각했을 때, 가로인 수직선 x축에서 시작하여,
x 에 넣어준 값들의 순서대로 배치된다.
** 넘파이 메소드를 이용한 각 원소별 비율 계산
-- > 이 비율을 시각화한 것이 파이차트
import numpy as np
np.array(counts)/np.sum(counts)
array([0.27272727, 0.09090909, 0.45454545, 0.18181818])
2. 파이 차트 그리기
<매개변수>- x : 값 - labels : 대상 이름
- autopct : 조각내에 표시될 비율의 문자열 형식. '%fmt문자'
- explode : 시각적으로 위로 뽑아주기 def = 0
- shadow : 시각적으로 그림자 효과
- labeldistance : label 의 위치. 0 ~ 1 : 안. 1 ~ : 밖으로 나옴
- pctdistance : pct 글씨의 위치. 0 ~ 1 : 안. 1 ~ : 밖으로 나옴
fruits = ['사과', '배', '귤', '딸기']
counts = [30,10,50,20]
plt.pie(counts, # 데이터 값이 담긴 리스트
labels = fruits, # 대상 label이 담긴 리스트
autopct = '%.2f%%', # 소수점 두자리 # 값으로 % 쓰기 : % 앞에 써주기 -> %%
explode = [0.1,0,0.1,0], # 세 번째를 위로뽑기 (def 0 )
labeldistance = 0.4,
pctdistance = 0.8,
shadow= True
)
plt.show()
3. 파이차트 활용
pandas ' 한국 웹브라우저 점유율 ' 데이터 프레임 을 파이차트로 그리기
각 컬럼별(범주) 웹브라우저의 점유율을 시각화 파이차트로 보고 싶다.
- 전처리
** (넘파이) converters = {컬럼명:타입} 컬럼을 지정한 타입(numpy의 데이터 타입)으로 읽어들인다.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 전처리
# date 컬럼이 float 실수 타입이다. object 타입으로 바꿔주기
df = pd.read_excel('data/webbrowser_share.xls', converters = {'date':np.str})
# date는 행의 식별자로 쓰일 수 있기 때문에 또, 분석대상도 아니기에
# date를 인덱스로 만들어준다.
df.set_index('date', inplace = True)
# 컬럼명 20개 넘어가서 다 안 보임.
pd.options.display.max_columns = 30
- 데이터를 보면 7번째 컬럼부터는 미미한 값임을 알 수 있다.
= > 7번째 컬럼부터 끝까지는 합하여 기타로 보자.
이를 위해 새로운 데이터 프레임을 만들어 줘야 한다.
# 0~ 7번째 컬럼 별 데이터 넣기
wb_df = df[df.columns[:7]].copy()
# 7 번째 ~ 컬럼 데이터를 합하여 넣기
wb_df['기타'] = df[cols[7:]].sum(axis = 1) # 행 별 sum 이기에 axis = 1
- pie chart 그리기 _ 2018.08 월 WB들의 점유율을 pie chart 로 확인해보자.
plt.figure(figsize = (10,10))
plt.pie(wb_df.iloc[0], labels = wb_df.columns,
autopct = '%.2f%%',
labeldistance = 1.1,
pctdistance = 0.9,
shadow = True
)
plt.show()
'AI_STUDY > 데이터 시각화 Matplotlib Seaborn Pandas' 카테고리의 다른 글
matplotlib_ 02_6 각종 그래프 그리기 _ 상자그래프(Boxplot) (0) | 2022.06.16 |
---|---|
matplotlib_ 02_5 각종 그래프 그리기 _ 히스토그램 (histogram) (0) | 2022.06.16 |
matplotlib_ 02_3 각종 그래프 그리기 _ 막대그래프(Bar plot) (0) | 2022.06.16 |
matplotlib_ 02_2 각종 그래프 그리기 _ 산점도 (Scatter Plot) (0) | 2022.06.16 |
matplotlib_ 02_1 각종 그래프 그리기 _ 선 그래프 (line Graph) (0) | 2022.06.15 |