[matplotlib]n차원 데이터 그리기
- Python/그래프 그리기
- 2021. 5. 13.
반응형
반응형
matplotlib를 이용해 n차원 데이터를 그리는 방법을 살펴볼까 합니다.
2차원을 먼저 살펴보고 n차원을 그려보겠습니다.
n차원 사실상 숫자가 정해져 있지 않으니 n=10으로 정하겠습니다.
n차원이라 해서 어려운 건 없고 하나의 plot에 그래프 갯수가 n개 나온다는 것뿐입니다.
2차원 데이터
랜덤으로 (10,2) 모양의 데이터를 가져오겠습니다.
import matplotlib as plt
import numpy as np
y = np.random.standard_normal((10,2))
y
그래프를 그리면 첫번째 column과 두번째 column으로 나눠집니다.
plt.plot(y,lw=1.5)
plt.plot(y,'ro')
2차원이라서 두개로 나눠집니다. n차원이라면 n으로 나눠지게 됩니다.
구분이 안 되니 label을 붙이겠습니다. label은 각 column마다 붙입니다.
결국 1차원데이터를 2번 plot하는 것과 같게 됩니다.
plt.plot(y[:,0],lw=1.5,label='1column')
plt.plot(y[:,1],lw=1.5,label='2column')
plt.plot(y,'ro')
plt.legend(loc=0)
n차원
랜덤으로 (10,10) 데이터를 가지고 그래프를 그려보겠습니다.
y = np.random.standard_normal((10,10))
y
그래프를 그리면 10차원이니 10개의 그래프가 나옵니다.
plt.plot(y,lw=1.5)
plt.plot(y,'ro')
10차원이라 구분을 하기가 더 어렵습니다.
그래서 label을 붙이고 점 때문에 더 구분이 어려운것같으니 없애겠습니다.
그렇다고 많이 구분이 되는 건 아니지만 조금은 나으니 시도해봅니다.
일일히 코드를 작성하기가 어려우니 for문을 통해서 그래프를 그리면 다음과 같이 나옵니다.
for i in range(len(y)):
plt.plot(y[:,i],label=f'{i}colomn')
plt.legend(bbox_to_anchor=(1,1))
이렇게 for문을 사용하면 n차원이어도 쉽게 그래프를 그릴 수 있게 됩니다.
bbox_to_anchor를 이용하면 밖으로 label을 뺄수 있어서 한결 보기가 편합니다.
자세한 내용은 포스팅을 해놨으니 참고해주시기 바랍니다.
관련포스팅
'Python > 그래프 그리기' 카테고리의 다른 글
[matplotlib] 산포 그래프(scatter) (0) | 2021.05.15 |
---|---|
[matplotlib]여러개로 나누어서 그래프 출력(subplot) (0) | 2021.05.14 |
matplotlib 그래프 영역 채우기 (0) | 2021.04.15 |
[matplotlib]plt 라벨(label) 위치설정 (0) | 2021.03.28 |
[matplotlib]pyplot.text(글자 쓰기) (0) | 2021.03.24 |