반응형
- Matplotlib 패키지는 데이터를 차트 혹은 플롯의 형태로 시각화하는 패키지이다.
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
- 여기서 %matplotlib inline은 Cell Magic 명령어라고 불리우는 것으로 이는 파이썬 코드가 아니라 Jupyter에게 특정 기능을 수행하도록 하는 명령이다. Run 버튼을 눌러 실행하여 출력 영역에 그래프를 표시하도록 한다.
Bar chart
x = np.array(['Q1', 'Q2', 'Q3','Q4'])
y = np.array([ 234.0, 254.7, 144.6, 317.6])
plt.bar(x,y,color = 'purple')
plt.title('BAR CHART')
plt.show()
- x를 x축으로하고, y를 y축으로 하는 바차트 하나를 그린다.
- 파라미터로 활용되는 x와 y는 리스트, 튜플, numpy 배열 모두 가능하다. 길이만 맞으면 섞어서도 사용 가능하다.
- title을 통해 차트의 제목을 정할 수 있다.
- 한 번 show를 하면 plt 내부적으로 저장되었던 값들이 방출된다. (따라서 다시 show를 해주어도 똑같은 그림이 다시 그려지지 않는다.)
Histogram
x = np.random.randn(10000)
y = np.random.randn(10000)*3 + 4
plt.hist(x,bins=20,color='red',density=False, alpha = 0.3)
plt.hist(y,bins=20,color='green',density=False, alpha = 0.3)
plt.title('HISTOGRAM')
plt.show()
- np.random.randn은 표준정규분포에서 난수를 일정개수 생성한다.
- bins는 구간의 개수를 뜻한다. 구간이 너무 많으면 각 구간을 눈으로 판별하기 어려울 수 있으니 적절한 bins값을 주어야한다.
- density는 y축을 빈도수가 아니라 밀도값으로 하고싶을 때 사용할 수 있다.
- 한 번의 plt 작업에서 여러개의 그래프를 그리고 show하면 한 번에 여러개의 그래프가 보여진다.
- alpha값을 조절해 투명도를 주절할 수 있다.
Box plot
x = np.random.randn(10000)*10+3
y = np.random.randn(10000)*10+5
z = np.random.randn(10000)*10+1
plt.boxplot([x,y,z],vert=True)
plt.title('BOX PLOTS')
plt.show()
- vert 값을 False로 주면 박스 플롯이 가로로 출력된다.
Line plot
x = np.linspace(0,10,100)
y = np.sin(x)
plt.plot(x,y,color='orange',linestyle='-', linewidth=2) # linestyle = '-'
plt.xlabel('X')
plt.ylabel('Sin')
plt.title('LINE PLOT')
plt.show()
- linestyle을 ':',':.','--' 등으로 조절해 사용할 수 있다.
- xlabel과 ylabel값을 부여할 수 있다.
범례 작성
x = np.linspace(0,10,100)
y = np.sin(x)
z = np.cos(x)
plt.plot(x,y,color='green',linestyle='--',linewidth=2, label = '1')
plt.plot(x,z,color='red',linestyle='--',linewidth=2, label = '2')
plt.xlabel('X')
plt.ylabel('Sin')
plt.legend()
plt.title('LINE PLOT')
plt.show()
- legend() 함수로 범례를 부착할 수 있다.
- 단 그래프에 label 값이 지정되어 구분이 가능해야 한다.
Scatter plot
x = np.linspace(0,10,100)
y = np.sin(x)
plt.plot(x,y,marker='o',linestyle='none',markersize=15,markerfacecolor='yellow',markeredgecolor='purple',markeredgewidth=2)
plt.xlabel('X')
plt.ylabel('Sin')
plt.title('SCATTER PLOT')
plt.show()
x = np.linspace(0,10,100)
y = np.sin(x)
plt.scatter(x,y,c='blue',marker='v',alpha=0.5)
plt.xlabel('X')
plt.ylabel('Sin')
plt.title('SCATTER PLOT')
plt.show()
x = np.linspace(0,10,100)
y = np.sin(x)
plt.scatter(x,y,c='red',marker='.',alpha=0.5)
plt.xlabel('X')
plt.ylabel('Sin')
plt.title('SCATTER PLOT')
plt.show()
- line plot과 같이 plot 함수를 사용할 수도 있다. (linestyle='none', 라인없음)
- scatter 함수를 기본으로 사용한다.
- marker 값을 v,o,s 등의 문자로 바꿀 수 있다.
- markersize, markerfacecolor, markeredgecolor, markeredgewidth 등의 값을 조절해 marker의 형태를 바꿀 수 있다.
반응형
'🛠 기타 > Data & AI' 카테고리의 다른 글
[파이썬] Pandas 기초 - DataFrame 생성 (컬럼 수정,추가, 삭제) (0) | 2020.07.09 |
---|---|
[파이썬] Pandas 기초 - Series (0) | 2020.07.09 |
[파이썬] Numpy 배열의 연산 (0) | 2020.07.09 |
[파이썬] Numpy 배열의 확장 및 삭제 (1) | 2020.07.09 |
[파이썬] Numpy 배열의 참조 (reshape를 통해 생성한 배열과 값을 공유하는 이유?) (0) | 2020.07.09 |