일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 데이터 사이언스
- 데이터사이언스
- 주가데이터
- 머신러닝
- 코딩테스트
- pandas
- 커리어전환
- 주요 파라미터
- 이력서 첨삭
- 자기소개서
- 베이지안 최적화
- 경력기술서 첨삭
- 대학원
- 하이퍼 파라미터 튜닝
- 데이터 사이언티스트
- 파이썬
- 퀀트 투자 책
- sklearn
- 판다스
- 파라미터 튜닝
- 데이터사이언티스트
- 경력 기술서
- 데이터사이언스학과
- AutoML
- 데이터분석
- 랜덤포레스트
- 주식데이터
- 하이퍼 파라미터
- 사이킷런
- 퀀트
- Today
- Total
GIL's LAB
Matplotlib을 이용한 그래프 업데이트 방법 본문
이번 포스팅에서는 데이터가 추가될 때마다 그래프를 업데이트하는 방법에 대해 알아보겠습니다.
예제 소개
설명을 위해서, 시간(t)이 지남에 따라 데이터가 추가되는데, 그 데이터는 sin(t)라고 하겠습니다.
즉, t = 100일 때 그려지는 그래프는 아래와 같이 그릴 수 있습니다.
먼저 필요한 모듈을 임포트해줍니다.
import matplotlib.pyplot as plt
import numpy as np
다음으로 데이터 t와 y를 만들어 plot 함수로 시각화합니다.
t = np.arange(0, 100, 1)
y = np.sin(t)
plt.plot(t, y)
plt.show()
이제 t의 요소가 한 개씩 추가될 때 그래프를 업데이트하는 방법을 알아보겠습니다.
가장 많이 하는 실수
실수 유형 1은 아래와 같이 i번째 데이터가 추가될 때마다 plot과 show를 사용하는 것입니다.
for i in range(1, 100):
plt.plot(t[:i], y[:i])
plt.show()
show를 하면 지금까지 그린 그래프 객체를 출력하기 때문에, 위 코드는 아래와 같이 그래프를 i가 바뀔 때마다 출력합니다.
(후략)
이것보다는 조금 나은(?) 실수는 show를 반복문에서 빼는 것입니다.
for i in range(1,100):
plt.plot(t[:i], y[:i])
plt.show()
위 코드는 아래와 같은 결과를 냅니다.
조금 괴랄해보이는 그래프가 그려졌는데, 그 이유는 t[:i]와 y[:i]에 대한 그래프를 반복적으로 그리다보니 그래프가 중첩되서 그렇습니다.
예를 들어, i가 1이상이면 t[0]과 y[0]은 항상 그래프에 나타나게 되므로 100번이나 찍히게 됩니다.
또한, 실시간으로 업데이트되지도 않습니다.
그럼 방법은?
다음과 같이, display.clear_output을 사용하여 기존에 그린 객체를 지우는 방식으로 접근할 수 있습니다.
from IPython import display
for i in range(1,100):
plt.plot(t[:i], y[:i])
plt.show()
display.clear_output(wait=True)
위 코드 실행 결과는 아래에서 확인할 수 있습니다.
https://tv.kakao.com/channel/3934600/cliplink/425139713
데이터 분석 서비스가 필요한 분은 아래 링크로!
'파이썬 > 데이터 분석을 위한 파이썬' 카테고리의 다른 글
tweepy를 이용한 트윗 데이터 수집 방법 (2) | 2022.08.28 |
---|---|
스트링 접근자: str accessor (0) | 2022.08.22 |
배열에서 k번째로 값이 큰(작은) 값 찾기 및 순위 계산 방법 (0) | 2022.08.21 |
Numpy와 Pandas에서의 배열 연산 (0) | 2021.12.10 |
Pandas의 Apply 메서드 (1) | 2021.10.05 |