1. 자료의 시각화
1) 자료
- 어떠한 가치 판단을 할 수 있는 근거가 되는 재료
- 문제해결을 위한 원재료로 처리되진 않은 숫자, 문자, 일련의 사실이나 기록들의 모임
2) 양적자료 (Qunatitative Data, 수치형 자료)
- 수치로 측정이 가능한 자료
- 테이블 생성할때 숫자로 되어있는거 양적자료이다.
- 연속형 자료(continuous data) : 실수형 예) commission_pct, 키, 몸무게
- 이산형 자료(discrete data) 정수형 예) 출생아수, 남학생수, 왼손잡이수
3) 질적자료(Qualitaive Data, 범주형 자료)
- 수치 측정이 불가능한 자료
- 자료의 내포하는 의미가 있는 자료
- 순위형 자료 (ordinal data) : 학점(A+,B,..), 매우좋아, 보통, 아주나쁘다
- 명목형 자료 (nominal dat) : 성별, 거주지역, 혈액형
4) 자료의 시각화
|
요약방법 |
자료정리 |
그래프 |
양적자료 |
수치,그래프 |
평균, 분산, 중앙값, |
히스토그램, 상자도표, |
질적자료 |
도수분포표, 도표, 그래프 |
분할표 |
막대그래프, 원그래프 |
2. pie chart
- 질적자료(범주형)에 대한 그래프
- 원을 그린후 그 원에 각 계급의 상대도수에 대응하는 면적 또는 부분으로 나눈다.
- 도수(frequency) : 각 범주에 속하는 관측값의 개수 (건수)
- 상대도수(relative frequency) : 도수를 전체 개수로 나눈 비율
- 도수분포표(frequency table) : 범주형 자료에서 범주와 그 범주에 대응하는 도수와 상대도수를 나열하는 표
예) 케이크 선호도 도수분포표
선호도 |
도수 |
상대도수 |
각도 |
초코 |
40 |
40/100 = 0.4 |
360*0.4 = 144 |
딸기 |
30 |
30/100 = 0.3 |
360*0.3 = 108 |
치즈 |
20 |
20/100 = 0.2 |
360*0.2 = 72 |
생크림 |
10 |
10/100 = 0.1 |
360*0.1 = 36 |
합 |
100 |
1 |
360 |
pd.plt를 사용한 시각화 : pie chart
# pie plot 그래프 사용 labels = ['초코','딸기','치즈','생크림'] frequency = [40,30,20,10] cake = DataFrame({'frequency':frequency}, index = labels) cake['frequency'].plot(kind='pie') |
![]() |
# 그래프에 한글 사용
# 한글이 깨지므로 꼭 폰트를 설정해야한다.
font_name = font_manager.FontProperties(fname = 'C:\windows/fonts/malgun.ttf').get_name() rc('font',family = font_name)
labels = ['초코','딸기','치즈','생크림'] |
![]() |
# figsize : 그림 사이즈(가로인치, 세로인치) labels = ['초코','딸기','치즈','생크림'] |
![]() |
# autopct : 상대도수를 퍼센트로 표현 labels = ['초코','딸기','치즈','생크림'] |
![]() |
# startangle : 파이조각을 나누는 시작점 (각도 표시) labels = ['초코','딸기','치즈','생크림'] frequency = [40,30,20,10] cake = DataFrame({'frequency':frequency}, index = labels) cake['frequency'].plot(kind='pie',figsize=(7,5), autopct = '%1.1f%%', startangle = 90) |
![]() |
# colors : 라벨의 순서대로 컬러를 정해준다. |
![]() |
# title : 그래프의 제목 labels = ['초코','딸기','치즈','생크림'] frequency = [40,30,20,10] cake = DataFrame({'frequency':frequency}, index = labels) cake['frequency'].plot(kind='pie',figsize=(7,5), autopct = '%1.1f%%', startangle = 90, colors = ['saddlebrown', 'lightpink', 'gold', 'cornsilk'], title = '케이크 선호도 조사') |
![]() |
# fontsize : 글자 크기 조절 labels = ['초코','딸기','치즈','생크림'] frequency = [40,30,20,10] cake = DataFrame({'frequency':frequency}, index = labels) cake['frequency'].plot(kind='pie',figsize=(7,5), autopct = '%1.1f%%', startangle = 90, colors = ['saddlebrown', 'lightpink', 'gold', 'cornsilk'], title = '케이크 선호도 조사', fontsize = 13) |
![]() |
# legend : 범례 사용 여부 labels = ['초코','딸기','치즈','생크림'] frequency = [40,30,20,10] cake = DataFrame({'frequency':frequency}, index = labels) cake['frequency'].plot(kind='pie',figsize=(7,5), autopct = '%1.1f%%', startangle = 90, colors = ['saddlebrown', 'lightpink', 'gold', 'cornsilk'], title = '케이크 선호도 조사', fontsize = 13, legend = True) |
![]() |
matplotlib를 사용한 시각화 : pie chart
# matplotlib 임포트
import matplotlib.pylab as plt
plt.pie(cake['frequency'], labels=cake.index) |
![]() |
# figsize : 그래프 크기 조절 plt.figure(figsize=(5,5)) plt.pie(frequency) |
![]() |
# explode : 조각내기 plt.figure(figsize=(5,5)) plt.pie(frequency, explode = (0.1,0,0,0)) |
![]() |
# labels : 라벨 표시 plt.figure(figsize=(5,5)) plt.pie(frequency, explode = (0.1,0,0,0), labels = labels) |
![]() |
# autopct : 상대도수를 퍼센트로 표현 plt.figure(figsize=(5,5)) plt.pie(frequency, explode = (0.1,0,0,0), labels = labels, autopct='%1.1f%%') |
![]() |
# shadow : 그림자 사용 여부 plt.figure(figsize=(5,5)) plt.pie(frequency, explode = (0.1,0,0,0), labels = labels, autopct='%1.1f%%', shadow = True) |
![]() |
# startangle : 파이조각을 나누는 시작점 (각도 표시) plt.figure(figsize=(5,5)) plt.pie(frequency, explode = (0.1,0,0,0), labels = labels, autopct='%1.1f%%', shadow = True, startangle = 90) |
![]() |
# textprops : 폰트 크기 조절 plt.figure(figsize=(5,5)) plt.pie(frequency, explode = (0.1,0,0,0), labels = labels, autopct='%1.1f%%', shadow = True, startangle = 90, textprops = {'fontsize':13}) |
![]() |
# colors : 색상 지정 colors = ['saddlebrown','lightpink','gold','cornsilk'] plt.figure(figsize=(5,5)) plt.pie(frequency, explode = (0.1,0,0,0), labels = labels, autopct='%1.1f%%', shadow = True, startangle = 90, textprops = {'fontsize':13}, colors = colors) |
![]() |
# plt.title() : 표 제목 colors = ['saddlebrown','lightpink','gold','cornsilk'] plt.figure(figsize=(5,5)) plt.pie(frequency, explode = (0.1,0,0,0), labels = labels, autopct='%1.1f%%', shadow = True, startangle = 90, textprops = {'fontsize':13}, colors = colors) plt.title('케이크 선호도 조사') |
![]() |
# plt.legend() : 범례 지정 colors = ['saddlebrown','lightpink','gold','cornsilk'] plt.figure(figsize=(5,5)) plt.pie(frequency, explode = (0.1,0,0,0), labels = labels, autopct='%1.1f%%', shadow = True, startangle = 90, textprops = {'fontsize':13}, colors = colors) plt.title('케이크 선호도 조사') plt.legend(labels=labels, loc='upper right') plt.show() |
![]() |
3. bar chart
- 막대그래프
- 각 범주에서 도수의 크기를 막대로 표현한다.
- 세로방향, 가로방향 막대그래프를 표현한다.
- bar(x, y) : x축의 위치, y축의 위치
# bar 그래프 사용 x = [1,2,3,4] |
![]() |
# color : 막대의 색상 지정 |
![]() |
# align : 막대의 x축 좌표에서 정렬 수행 x = [1,2,3,4] y = [90,80,70,50] xlabel = ['초코','딸기','치즈','생크림'] plt.bar(x, y, color = ['saddlebrown','lightpink','gold','cornsilk'], align = 'center') |
![]() |
# width : 막대의 넓이 x = [1,2,3,4] y = [90,80,70,50] xlabel = ['초코','딸기','치즈','생크림'] plt.bar(x, y, color = ['saddlebrown','lightpink','gold','cornsilk'], align = 'center', width = 0.7) |
![]() |
# plt.title() : 그래프의 제목 x = [1,2,3,4] y = [90,80,70,50] xlabel = ['초코','딸기','치즈','생크림'] plt.bar(x, y, color = ['saddlebrown','lightpink','gold','cornsilk'], align = 'center', width = 0.6) plt.title("케이크 선호도 조사", size = 20) |
![]() |
# plt.xlabel() : x축의 이름 |
![]() |
# 축의 이름을 바꿀때 x = [1,2,3,4] y = [90,80,70,50] xlabel = ['초코','딸기','치즈','생크림'] plt.bar(x, y, color = ['saddlebrown','lightpink','gold','cornsilk'], align = 'center', width = 0.6) plt.title("케이크 선호도 조사", size = 20) plt.xlabel("종류", size = 15) plt.ylabel("선호도", size = 15) plt.xticks(x, xlabel) |
![]() |
# plt.grid() : 그래프에 그리드 사용 여부 x = [1,2,3,4] y = [90,80,70,50] xlabel = ['초코','딸기','치즈','생크림'] plt.bar(x, y, color = ['saddlebrown','lightpink','gold','cornsilk'], align = 'center', width = 0.6) plt.title("케이크 선호도 조사", size = 20) plt.xlabel("종류", size = 15) plt.ylabel("선호도", size = 15) plt.xticks(x, xlabel) plt.grid(True) |
![]() |
# 가로형 bar 그래프 사용 x = [1,2,3,4] y = [90,80,70,50] xlabel = ['초코','딸기','치즈','생크림'] plt.barh(x, y, color = ['saddlebrown','lightpink','gold','cornsilk'], align = 'center') |
![]() |
# xlime : x축의 길이를 0~120까지 늘린다. x = [1,2,3,4] y = [90,80,70,50] xlabel = ['초코','딸기','치즈','생크림'] plt.barh(x, y, color = ['saddlebrown','lightpink','gold','cornsilk'], align = 'center') plt.title("케이크 선호도 조사", size = 20) plt.ylabel("종류", size = 15) plt.xlabel("선호도", size = 15) plt.yticks(x, xlabel) plt.xlime(0,100) |
![]() |
# 여러개의 값을 bar형태로 나타내기 |
![]() |
# 한 개의 값을 bar형태로 나타내기 |
![]() |
# 여러개의 값을 가로형 bar형태로 나타내기 data = DataFrame({'서울':[25,35,15], '천안':[30,15,25], '분당':[15,20,30]}, index = ['강아지','고양이','햄스터']) data.plot(kind='barh') |
![]() |
# 스택형 막대 그래프 data = DataFrame({'서울':[25,35,15], '천안':[30,15,25], |
![]() |
# 스택형 가로 막대 그래프 data = DataFrame({'서울':[25,35,15], '천안':[30,15,25], '분당':[15,20,30]}, index = ['강아지','고양이','햄스터']) data.plot(kind='barh', stacked = True) |
![]() |
4. line plot (= 기본값)
- 선을 그리는 그래프
- 꺾은선 그래프
- 데이터가 시간, 순서 등에 따라 어떻게 변하는지를 보여주기 위해서 사용된다.
# line 그래프 사용 data = DataFrame({'서울':[25,35,15], '천안':[30,15,25], '분당':[15,20,30]}, index = ['강아지','고양이','햄스터']) data.plot() |
![]() |
# line 그래프 사용 data.plot(kind='line',color=['red','blue','yellow'],figsize=(7,7)) |
![]() |
'컴퓨터 > 파이썬' 카테고리의 다른 글
파이썬(Python) - matplotlib ③ 상자 그림 / 줄기잎 그림 (0) | 2020.03.24 |
---|---|
파이썬(Python) - matplotlib ② histogram (0) | 2020.03.23 |
파이썬(Python) - 파이썬에서 오라클 SQL로 접속하는 방법 (0) | 2020.03.19 |
파이썬(Python) - Sqlite 사용법 (0) | 2020.03.17 |
파이썬(Python) - 날짜 계산 (0) | 2020.03.17 |