matplotlib란?
파이썬의 대표 시각화 도구로서, 보통 plt로 naming하여 사용한다. jupyter notebook 유저의 경우, matplotlib의 결과가 out session에 나타나는 것이 유리하므로 %matplotlib inline 옵션을 사용한다.
import matplotlib.pyplot as plt
1. 2차원 그래프로 나타내는 기본적인 함수는 ".figure()로 열어서 .show()로 받는다"이다. .figure(figsize=())로 그림에 대한 속성을 정의하고, .plot()으로 내부의 값을 정하고, .show()로 그림으로 나타낸다.
2. 예를 들어 삼각함수를 그린다고 가정해보자. numpy의 sin 함수를 불러와서 내부의 값을 정의하고 show()함수를 통해 그림으로 나타낸다.
import numpy as np
t = np.arrange(0, 12, 0.01)
y = np.sin(t)
3. 일반적으로 그래프를 그리는 코드를 def()로 작성한다. 그렇게 하면 나중에 별도의 셀에서 그림만 나타낼 수 있기 때문이다.
import numpy as np
def drawgraph():
t = np.arange(0, 12, 0.01)
plt.figure(figsize=(10,6))
plt.plot(t, np.sin(t), label='sin')
plt.plot(t, np.cos(t), label='cos')
# grid()는 격자를 그리는 함수
plt.grid()
# legend()는 위에서 설정한 label(범례)를 표현하는 함수
plt.legend()
plt.xlabel('time')
plt.ylabel('Amplitude')
plt.title('Example of sinewave')
plt.show()
4. 추가적인 기능들을 보자. 그래프를 다른 도형이나 선으로 표현할 수 있다.
t = np.arange(0, 5, 0.5)
def drawgraph2():
plt.figure(figsize=(10,6))
plt.plot(t,t,'r--') # red dash, 빨간 점선
plt.plot(t,t ** 2, 'bs') # blue squared, 파란 삼각형
plt.plot(t, t**3, 'g^') # green arrow(위로 뾰족한 초록색 화살표)
plt.show()

5. .plot() 안에는 마치 html5/css를 다루는 것처럼 그래프의 다양한 속성을 설정할 수 있다.
t = [0,1,2,3,4,5,6]
y = [1,4,5,8,9,5,3]
# 다양한 스타일을 지정할 수 있다
# 그래프의 css를 지정하는 느낌!
def drawgraph3():
plt.figure(figsize=(10,6))
plt.plot(
t,
y,
color='green',
linestyle='dashed',
marker='o',
markerfacecolor='blue',
markersize=12,
)
plt.xlim([-0.5,6.5]) # x축의 범위를 지정하는 함수
plt.ylim([0.5,9.5]) # y축의 범위를 지정하는 함수
plt.show()

6. 점을 흩뿌리듯이 그리는 그림도 있다. scatter기능을 사용한다.
t = np.array([0,1,2,3,4,5,6,7,8,9])
y = np.array([9,8,7,9,8,3,2,4,3,4])
# scatter는 점을 뿌리듯이 그리는 그림이다
def drawgraph4():
plt.figure(figsize=(10,6))
plt.scatter(t,y)
plt.show()

7. colormap 기능으로 효과적으로 그래프의 확산도를 표현할 수 있다.
colormap = t
def drawgraph5():
plt.figure(figsize=(10,6))
plt.scatter(t,y,s=50, c=colormap, marker='>')
plt.colorbar()
plt.show()

'데이터분석 > 미니프로젝트 01. 서울시 CCTV 현황 분석' 카테고리의 다른 글
| 미니프로젝트 01-02-01. 강남 3구 범죄현황 데이터, Pandas의 Pivot Table (0) | 2024.03.24 |
|---|---|
| 미니프로젝트 01-01-05. CCTV 데이터와 그래프로 표현하기(데이터시각화) (1) | 2024.03.22 |
| 미니프로젝트 01-01-03. CCTV데이터와 인구현황 데이터 훑어보기 (0) | 2024.03.20 |
| 미니프로젝트 01-01-02. pandas 기초 (1) | 2024.03.18 |
| 미니프로젝트 01-01-01. 서울시 CCTV 현황 분석 (1) | 2024.03.17 |