티스토리 뷰

반응형

데이터가 주어졌을 때, 해당 데이터의 그래프를 그리는 정적 그래프를 그리는 것은 

쉽게 구현이 가능했지만, 이전 포스팅([PYTHON] Serial Port 통신)의 목적처럼 실시간으로 외부 데이터나 업데이트 되는 

데이터를 동적으로 그리는 것은 쉽지 않았기 때문에 정리한 내용을 공유한다. 

 

[PYTHON] Serial Port 통신

이번 포스팅 내용은 파이썬에서 serial 통신을 하는 내용이다. 먼저 추가해줘야 할 모듈이 두개 있다. C:\..\Python\Python38-32\python.exe "D:/develop/python/ Python_test/Education/day1.py" Traceback (most..

cocoabba.tistory.com

 

 

먼저 전체 구상은 아래와 같이 한다. 

대시보드를 구현하려고 하였고, 두 가지 데이터를 실시간으로 표현하였다. 

크게 영역은 제목영역과 각각의 데이터 그래프 영역이다. 

 

먼저 제목 영역 코드는 아래와 같다. 

#Set up plot
plt.rc('font', size=self.MEDIUM_SIZE, family='Malgun Gothic')   # controls default text sizes
plt.rc('axes', titlesize=self.MEDIUM_SIZE)                      # fontsize of the axes title
plt.rc('figure', titlesize=self.BIGGER_SIZE)                    # fontsize of the figure title
self.figure, self.ax = plt.subplots(1, 2, figsize=(12, 6), facecolor='lightgray')
#r:red, k:black, b:blue, g:green
#색상표 : https://matplotlib.org/examples/color/named_colors.html

 

글꼴, 하위 그래프의 크기, 글씨 크기 및 전체 대시보드의 크기 및 배경색을 설정한다.

 

self.figure, self.ax = plt.subplots(1,2, figsize = (12, 6), facecolor='lightgray') 코드는

 

1. row, column 개수 (1, 2)의 그래프 생성

2. 가로/세로 = 12/6 인치의 size 로 설정 (https://matplotlib.org/examples/color/named_colors.html 에서 확인 가능)

3. 이렇게 반환한 각각의 차트는 ax로 할당

 

다음은 각각의 그래프(ax[0], ax[1])를 구성해보면, 아래와 같다. 

#1 데이터 1
self.lines0, = self.ax[0].plot([], [], '-', color='b')

self.ax[0].set_ylim(0, 100) # Y축 범위
self.ax[0].grid()
self.ax[0].set_xlabel("Time")
self.ax[0].set_ylabel("Value")
self.ax[0].set_title('데이터1')

ax[0].plot의 각각의 parameter 를 통해 X값, Y값, 선 종류('-'은 실선, ex:'--'은 점선), color(blue)를 지정한다. 

 

아래 코드는 각 레이블 및 축이름을 지정한다. (ax[1]도 동일하게 설정)

 

여기까지가 그래프에 대한 초기 설정이다. 

 

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함