샘플 데이터
pandas 라이브러리 불러오기
import pandas as pd
from pandas import Series, DataFrame
births = pd.read_csv('https://raw.githubusercontent.com/jakevdp/data-CDCbirths/master/births.csv')
#decade 컬럼 추가
births['decade'] = births['year']
births
#10 아래는 버리고 10을 곱해 년대를 표현한다
births['decade'] = births['year'] // 10 * 10
births
#데이터의 축 바꾸기(x축은decade, y축은 성별)
births.pivot_table('births',index='decade',columns='gender',aggfunc='sum')
import matplotlib.pyplot as plt
births.pivot_table('births',index='decade',columns='gender',aggfunc='sum').plot()
births.pivot_table('births',index='year',columns='gender',aggfunc='sum').plot()
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,10,100)
#linspace(시작점,끝점,총개수)
#값 범위 0에서 10까지 일정간격으로 나눠진 100개의 숫자가 들어있는 Numpy 배열 생성
x
#sin graph
plt.plot(x, np.sin(x))
#cos graph
plt.plot(x, np.cos(x))
# sin, cos 두 개 같이 그리기
plt.plot(x, np.sin(x))
plt.plot(x, np.cos(x))
#'-' 점선, '--' 실선
fig=plt.figure()
plt.plot(x, np.sin(x), '-')
plt.plot(x, np.cos(x), '--')
fig.savefig('my_figure.png')
fig=plt.figure() #이미지 저장기능을 사용하기 위해 figure 생성, 그림판 같은 것
plt.plot(x, np.sin(x), '-')
plt.plot(x, np.cos(x), '--')
fig.savefig('my_figure.png') #이미지 저장하기
실행하면 같은 폴더 안에 이미지가 저장된다.
#이미지 불러오기
from IPython.display import Image
Image('my_figure.png')
#맷플롯립이 지원하는 파일 형식 확인
fig.canvas.get_supported_filetypes()
결과)
{'eps': 'Encapsulated Postscript',
'jpg': 'Joint Photographic Experts Group',
'jpeg': 'Joint Photographic Experts Group',
'pdf': 'Portable Document Format',
'pgf': 'PGF code for LaTeX',
'png': 'Portable Network Graphics', <-- 그래프가 선명하게 나온다
'ps': 'Postscript',
'raw': 'Raw RGBA bitmap',
'rgba': 'Raw RGBA bitmap',
'svg': 'Scalable Vector Graphics', <--- 그래프를 벡터값으로 표현해서 안 깨진다
'svgz': 'Scalable Vector Graphics', <--- svg랑 같은 것, 이름만 다름
'tif': 'Tagged Image File Format',
'tiff': 'Tagged Image File Format'}
plt.figure()
plt.subplot(2,1,1)
plt.plot(x, np.sin(x))
plt.subplot(2,1,2)
plt.plot(x, np.cos(x))
#그래프 선 컬러 변경
plt.plot(x, np.sin(x-0), color='blue') #파란 그래프
plt.plot(x, np.sin(x-1), color='g') #녹색 그래프, black은 k
plt.plot(x, np.sin(x-2), color='0.75') #회색 그래프,1이 흰색 0이 검은색
plt.plot(x, np.sin(x-3), color='#FFDD44') #노란 그래프, RGB 16진수로 표현
plt.plot(x, np.sin(x-4), color=(1.0,0.2,0.3)) #빨간 그래프, 튜플로 RGB 10진수 표현, 0~1 사이의 값으로 표현
plt.plot(x, np.sin(x-5), color='chartreuse') #지정된 색이름을 사용함
#그래프 선 형태 변경
plt.plot(x, x+0, linestyle='solid') #실선
plt.plot(x, x+1, linestyle='dashed')#대시선
plt.plot(x, x+2, linestyle='dashdot')#대시점선
plt.plot(x, x+3, linestyle='dotted')#점선
plt.plot(x, x+4, linestyle='-') #실선
plt.plot(x, x+5, linestyle='--')#대시선
plt.plot(x, x+6, linestyle='-.')#대시점선
plt.plot(x, x+7, linestyle=':')#점선
#그래프의 색과 형태를 한번에 변경
plt.plot(x, x+0, '-g') #solid라인으로 녹색선
plt.plot(x, x+1, '--c') #dash라인으로 파란선
plt.plot(x, x+2, '-.k') #dashdot라인으로 검은선
plt.plot(x, x+3, ':r') #dot라인으로 빨간선
#x축과 y축이 표시되는 범위를 조정
plt.plot(x, np.sin(x))
plt.xlim(-1, 11)
plt.ylim(-1.5, 1.5)
오늘은 Pandas로 표를 원하는대로 표시하는 법, Matplotlib으로 데이터를 시각화하고 여러가지 속성을 변경하며 그래프를 다루는 법을 배웠다. 복잡한 데이터를 이렇게 쉽게 그래프로 그려낸다는 것이 신기하다. 내가 분석한 데이터의 결과를 그래프로 만들어 웹에 올린다면 너무 재밌을 것 같아서 빨리 뭔가를 만들어 보고 싶다.
수업내용을 정리하면서 구글링을 해보면 인터넷에는 많은 자료와 강의들이 있다. 게다가 지금 시대는 지식을 공유하는 시대라 많은 사람들이 자신이 아는 것을 공유한다. 다 읽어보고 싶은데 시간이 부족할 정도이다. 수업에서 배운 내용의 복습도 중요하지만 시간 날 때마다 이런 자료들이나 강의로 적극적으로 공부해야겠다.