티스토리 뷰
데이터가 주어졌을 때, 해당 데이터의 그래프를 그리는 정적 그래프를 그리는 것은
쉽게 구현이 가능했지만, 이전 포스팅([PYTHON] Serial Port 통신)의 목적처럼 실시간으로 외부 데이터나 업데이트 되는
데이터를 동적으로 그리는 것은 쉽지 않았기 때문에 정리한 내용을 공유한다.
먼저 전체 구상은 아래와 같이 한다.
대시보드를 구현하려고 하였고, 두 가지 데이터를 실시간으로 표현하였다.
크게 영역은 제목영역과 각각의 데이터 그래프 영역이다.
먼저 제목 영역 코드는 아래와 같다.
#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]도 동일하게 설정)
여기까지가 그래프에 대한 초기 설정이다.
'개발 > 파이썬(PYTHON)' 카테고리의 다른 글
Python 자료 구조 정리 (list, dictionary, tuple, set) (0) | 2021.10.29 |
---|---|
[Python] matplotlib.pyplot 활용한 그래프 동적 업데이트 (2/2) (0) | 2021.01.04 |
[PYTHON] Serial Port 통신 (1) | 2020.12.14 |
[PYTHON] 네이버 주식정보 가져오기 (4/4) - email 보내기 (0) | 2020.12.13 |
[PYTHON] 네이버 주식정보 가져오기 (3/4) (7) | 2020.12.13 |
- Total
- Today
- Yesterday
- 경매
- 경제적 자유
- tkinter
- 네이버 주식
- 크몽
- Export
- DICTIONARY
- 오피스텔
- matplotlib
- 네이버 부동산
- 네이버
- 대항력있는 임차인
- 평형정보
- eum.go.kr
- 네이버쇼핑
- 상가
- Excel
- pandas
- 매물
- 부동산
- REST API
- beautifulsoup
- PYTHON
- 단지정보
- pyplot
- 전국
- json
- 파이썬
- cortarNo
- 크롤링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |