반응형
반응형
파이썬에서 실시간 그래프(센서 데이터 등)를 출력하는 방법을 말씀드리겠습니다.
(matplotlib animation 이용)
Import
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
figure 설정
- 그래프 틀 만드는거라고 보면 됨
fig, ax = plt.subplots() ax.set_xlim(0,100) ax.set_ylim(-3,3)
- matplotlib 의 subplot을 생성하여 subplot에 그래프 생성 예정
Data 입력 받을 list 생성
x = [0]
y = [0]
- x는 index, y는 받은 데이터로 사용 예정
함수 생성(데이터 표기)
def animate(i, x, y):
y_data = 입력받은 데이터
x.append(x[-1] + 1)
y.append(y_data)
x = x[-100:] # 최근 100개만 봄
y = y[-100:]
ax.clear()
ax.plot(x, y)
- y_data : 읽어들인 센서 데이터(저는 소켓을 사용하였고, 소켓을 사용 방법은 아래에 있습니다.)
https://limmmmm.tistory.com/23
여러 데이터 표기하는 방법
- y대신 y1, y2 .. 이런식으로 생성한 뒤 같은 방식으로 append, plot 해주면 됨
def animate(i, x, y1, y2, y3):
y_data1 = 입력받은 데이터
y_data2 = 입력받은 데이터
y_data3 = 입력받은 데이터
x.append(x[-1] + 1)
y1.append(y_data1)
y2.append(y_data2)
y3.append(y_data3)
x = x[-100:] # 최근 100개만 봄
y1 = y1[-100:]
y2 = y2[-100:]
y3 = y3[-100:]
ax.clear()
ax.plot(x, y1)
ax.plot(x, y2)
ax.plot(x, y3)
함수 실행
animation = FuncAnimation(fig, animate, fargs=(x, y), interval=1)
plt.show()
반응형
'programming > python' 카테고리의 다른 글
(datetime) 파이썬 날짜 변환 (날짜 -> 나노세컨드 -> 날짜) (0) | 2023.01.26 |
---|---|
(socket) 파이썬 소켓 통신 (0) | 2023.01.25 |
(matplotlib) 실시간 그래프 출력 오류(with 파이참) (0) | 2023.01.20 |
(ssh) ssh작업 관련(설정 및 오류 등) (0) | 2022.11.28 |
(파일전송)파일 전송, 폴더 전송(with scp) (0) | 2022.11.23 |