SiLaure's Data
[Marketing DA] 03~04. 시각화 라이브러리 matplotlib 본문
데이터 분석 과정과 시각화
- 머신러닝의 과정
- 데이터 수집
- 데이터 전처리
- 데이터 탐색 ★
- 모델 선택
- 모델 평가 및 적용
시각화의 필요성
- 대량의 데이터 파악 가능
- 데이터의 패턴 파악 가능
In [16]:
import matplotlib.pyplot as plt
In [17]:
import pandas as pd
from pandas import DataFrame
from pandas import Series
In [18]:
# matplotlib 한글 폰트 출력코드
# 출처 : 데이터공방( https://kiddwannabe.blog.me)
import matplotlib
from matplotlib import font_manager, rc
import platform
try :
if platform.system() == 'Windows':
# 윈도우인 경우
font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()
rc('font', family=font_name)
else:
# Mac 인 경우
rc('font', family='AppleGothic')
except :
pass
matplotlib.rcParams['axes.unicode_minus'] = False
In [19]:
import pandas as pd
from pandas import DataFrame
from pandas import Series
In [27]:
df=pd.read_excel('/Users/user/Desktop/1. 수업자료/(KDT) 머신러닝과 데이터분석 A-Z 올인원 패키지 Online/Part 13~17) Project/01. 광고 데이터를 활용한 데이터 분석 Project/Data/네이버보고서.xls',skiprows=[0])
In [28]:
df
Out[28]:
광고그룹 | 키워드 | 노출수 | 클릭수 | 클릭률(%) | 평균클릭비용(VAT포함,원) | 총비용(VAT포함,원) | |
---|---|---|---|---|---|---|---|
0 | 올인원 패키지 : 디자인 툴_파워컨텐츠_포토샵 | - | 2319456 | 9606.0 | 0.414149 | 261.549448 | 2512444 |
1 | 올인원 패키지 : 업무자동화_VBA | - | 767491 | 8058.0 | 1.049915 | 295.974808 | 2384965 |
2 | ㅍAOP 전체_중복키워드_디자인(삭제) | 일러스트 | 1137840 | 324.0 | 0.028475 | 4841.663580 | 1568699 |
3 | 올인원 패키지 : 데이터 분석 입문 온라인_파콘 | - | 694106 | 1863.6 | 0.268489 | 630.593475 | 1175174 |
4 | 3. html | HTML | 9626374 | 813.6 | 0.008452 | 1408.435349 | 1145903 |
... | ... | ... | ... | ... | ... | ... | ... |
1376 | 올인원 패키지 : 업무자동화_3. 엑셀 | 엑셀셀서식 | 24016 | 0.0 | 0.000000 | 0.000000 | 0 |
1377 | 올인원 패키지 : 업무자동화_3. 엑셀 | MATCH | 32287 | 0.0 | 0.000000 | 0.000000 | 0 |
1378 | 마케팅KPI수립 | LTV | 32602 | 0.0 | 0.000000 | 0.000000 | 0 |
1379 | data_camp_rmp_8 | DECISION | 60844 | 0.0 | 0.000000 | 0.000000 | 0 |
1380 | 4. 웹의 동작 | REST | 61193 | 0.0 | 0.000000 | 0.000000 | 0 |
1381 rows × 7 columns
In [29]:
((((df['노출수'].sort_values())/1000).reset_index()).drop('index',axis=1)).plot(figsize=[13,5])
plt.yticks([0,2000,4000,6000,8000,10000],[0,'2,000,000','4,000,000','6,000,000','8,000,000','10,000,000'])
plt.title('노출수 plot',fontsize=20)
plt.show()
- 시각화 라이브러리 matplotlib
- matplotlib은 pandas의 데이터프레임, 시리즈 자료구조와 함께 사용 가능
- 따라서 데이터 처리와 동시에 시각화도 함께 진행할 수 있음
- 아나콘다(anaconda)를 설치했다면 별도의 설치과정이 필요 없음
In [30]:
# matplotlib import
import matplotlib.pyplot as plt
In [31]:
# pandas, DataFrame, Series import
import pandas as pd
from pandas import DataFrame
from pandas import Series
In [32]:
# matplotlib 한글 폰트 출력코드
# 출처 : 데이터공방( https://kiddwannabe.blog.me)
import matplotlib
from matplotlib import font_manager, rc
import platform
try :
if platform.system() == 'Windows':
# 윈도우인 경우
font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()
rc('font', family=font_name)
else:
# Mac 인 경우
rc('font', family='AppleGothic')
except :
pass
matplotlib.rcParams['axes.unicode_minus'] = False
데이터프레임 시각화
In [33]:
#데이터프레임 변수 생성
dict_data={"철수":[1,2,3,4],"영희":[2,3,4,5],"민수":[3,4,5,6],"수진":[4,5,6,7]}
df=DataFrame(dict_data)
In [34]:
df
Out[34]:
철수 | 영희 | 민수 | 수진 | |
---|---|---|---|---|
0 | 1 | 2 | 3 | 4 |
1 | 2 | 3 | 4 | 5 |
2 | 3 | 4 | 5 | 6 |
3 | 4 | 5 | 6 | 7 |
차트 그리기
In [37]:
# 선그래프
df.plot()
plt.show()
In [38]:
# 막대그래프
df.plot.bar()
plt.show()
In [39]:
# 가로막대그래프
df.plot.barh()
plt.show()
In [41]:
# 히스토그램
df.plot.hist()
plt.show()
In [47]:
# 히스토그램 구간설정
df.plot.hist(bins=range(1,9,1))
plt.show()
차트에 옵션 추가하기
In [49]:
# 기본 막대그래프
df.plot.bar()
plt.show()
In [51]:
# 그래프 크기 설정
df.plot.bar(figsize=[10,6])
plt.show()
In [55]:
# 제목설정
df.plot.bar(figsize=[10, 6])
plt.title('예제')
plt.show()
In [56]:
# 제목 폰트 크기 설정
df.plot.bar(figsize=[10, 6])
plt.title('예제', fontsize = 18)
plt.show()
In [59]:
# x축 이름 설정
df.plot.bar(figsize=[10, 6])
plt.title('예제', fontsize = 18)
plt.xlabel('xlabel')
plt.show()
In [60]:
# x축 이름 및 폰트크기 설정
df.plot.bar(figsize=[10, 6])
plt.title('예제', fontsize = 18)
plt.xlabel('xlabel', fontsize = 16)
plt.show()
In [62]:
# y축 이름 및 폰트 크기 설정
df.plot.bar(figsize=[10, 6])
plt.title('예제', fontsize = 18)
plt.xlabel('xlabel', fontsize = 16)
plt.ylabel('ylabel', fontsize = 16)
plt.show()
In [64]:
# x축 눈금설정
# 설정할 눈금의 위치, 눈금의 이름, 폰트사이즈, 각도
df.plot.bar(figsize=[10, 6])
plt.title('예제', fontsize = 18)
plt.xlabel('xlabel', fontsize = 16)
plt.ylabel('ylabel', fontsize = 16)
plt.xticks([0, 1, 2], ['첫째', '둘째', '셋째'], fontsize=10, rotation=0)
plt.show()
In [65]:
# y축 눈금설정
df.plot.bar(figsize=[10, 6])
plt.title('예제', fontsize = 18)
plt.xlabel('xlabel', fontsize = 16)
plt.ylabel('ylabel', fontsize = 16)
plt.xticks([0, 1, 2], ['첫째', '둘째', '셋째'], fontsize=10, rotation=0)
plt.yticks([1, 3, 5, 7], ['첫째', '셋째', '다섯째', '일곱째'], fontsize=10)
plt.show()
In [67]:
# x축 범위설정
df.plot.bar(figsize=[10, 6])
plt.title('예제', fontsize = 18)
plt.xlabel('xlabel', fontsize = 16)
plt.ylabel('ylabel', fontsize = 16)
plt.xticks([0, 1, 2], ['첫째', '둘째', '셋째'], fontsize=10, rotation=0)
plt.yticks([1, 3, 5, 7], ['첫째', '셋째', '다섯째', '일곱째'], fontsize=10)
plt.xlim([-1, 4])
plt.show()
In [68]:
# y축 범위설정
df.plot.bar(figsize=[10, 6])
plt.title('예제', fontsize = 18)
plt.xlabel('xlabel', fontsize = 16)
plt.ylabel('ylabel', fontsize = 16)
plt.xticks([0, 1, 2], ['첫째', '둘째', '셋째'], fontsize=10, rotation=0)
plt.yticks([1, 3, 5, 7], ['첫째', '셋째', '다섯째', '일곱째'], fontsize=10)
plt.xlim([-1, 4])
plt.ylim([-1, 8])
plt.show()
시리즈 시각화
In [69]:
# 데이터프레임 열 = 시리즈
df['철수']
Out[69]:
0 1
1 2
2 3
3 4
Name: 철수, dtype: int64
In [73]:
# 선그래프
df['철수'].plot()
plt.show()
In [77]:
# 막대그래프
df['철수'].plot.bar()
plt.show()
In [78]:
# 가로막대그래프
df['철수'].plot.barh()
plt.show()
In [79]:
# 히스토그램(구간설정)
df['철수'].plot.hist(bins=range(1, 6, 1))
plt.show()
차트에 옵션 추가하기
In [80]:
df['철수'].plot.bar()
plt.show()
In [81]:
df['철수'].plot.bar(figsize=[10, 6])
plt.title('예제', fontsize = 18)
plt.xlabel('xlabel', fontsize = 16)
plt.ylabel('ylabel', fontsize = 16)
plt.xticks([0, 1, 2], ['첫째', '둘째', '셋째'], fontsize=10, rotation=0)
plt.yticks([1, 3, 5, 7], ['첫째', '셋째', '다섯째', '일곱째'], fontsize=10)
plt.xlim([-1, 4])
plt.ylim([-1, 8])
plt.show()
'Records of > Learning' 카테고리의 다른 글
[Machine Learning] Machine Learning의 개념 (0) | 2021.08.18 |
---|---|
[ad DA] 01~02. 데이터 전처리 실습 (0) | 2021.08.11 |
[Marketing DA] 02. 데이터 분석을 위한 Domain Knowledge (0) | 2021.08.11 |
[Marketing DA] 01. 마케팅 데이터 분석 툴로써의 Python (0) | 2021.08.11 |
[DB] 03. 데이터베이스 아키텍처(Architecture) (0) | 2021.08.04 |
Comments