๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ Python

ํŒŒ์ด์ฌ Python GUI - ๊ทธ๋ž˜ํ”„ (pyqtgraph, matplotlib) (realtime, ์‹ค์‹œ๊ฐ„)

by dev.py 2021. 2. 20.

ํŒŒ์ด์ฌ์—์„œ ๊ทธ๋ž˜ํ”„๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” pyqtgraph, matplotlib ํŒจํ‚ค์ง€๊ฐ€ ์žˆ๋‹ค.

 

๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด serial port, bluetooth ๋“ฑ์˜ ์ •๋ณด๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋ง, ์‹œ๊ฐํ™” ํ•˜๋Š” ๋“ฑ์˜ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๋ฉด pyqtgraph ํŒจํ‚ค์ง€๋ฅผ ์ถ”์ฒœํ•˜๊ณ 

 

์ •์  ๋˜๋Š” ํ™”๋ฉด ํ”„๋ ˆ์ž„์ˆ˜๊ฐ€ ์ดˆ๋‹น 10fps ์ดํ•˜์˜ ๊ฐ„๋‹จํ•œ ํ”„๋กœ๊ทธ๋žจ์ด๋ผ๋ฉด matplotlib์˜ animation.FuncAnimation 

๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋‘ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ฐจ์ด์ ์€ 

 

1. ์†๋„.  matplotlib์€ ์• ์ดˆ์— ์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง ๋“ฑ์˜ ๋™์ ์ธ GUI๋ฅผ ์—ผ๋‘์— ๋‘๊ณ  ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š์•˜๋‹ค. ์ด ์ด์œ ๋กœ ํ•„์ž๋Š” matplotlib์„ ๋Œ€์‹  pyqtgraph๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

2. ํŽธ๋ฆฌ์„ฑ. ํ”„๋กœ๊ทธ๋žจ GUI๋ฅผ PyQt๋กœ ๊ฐœ๋ฐœํ–ˆ๋‹ค๋ฉด pyqtgraph๋ฅผ ํ”„๋กœ๊ทธ๋žจ์— ๋„์šฐ๋Š” ๊ฒƒ์€ ๋งค์šฐ ์‰ฝ๋‹ค. ๋ฐ˜๋ฉด์— matplotlib๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด matplotlib์˜ ํ•จ์ˆ˜๋“ค๊ณผ ๋ณ€์ˆ˜๋“ค์„ ์‚ฌ์šฉํ•  ๋•Œ, ์ด๊ฒƒ์ด ํ˜ธํ™˜์ด ๋˜๋Š” ์ง€๋ฅผ ๊ณ„์† ์—ผ๋‘ํ•ด์•ผํ•œ๋‹ค.numpy, dataframe ํŒจํ‚ค์ง€์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๋•Œ ๋ณด๋‹ค ํŒŒ์ด์ฌ ๋‹ต๊ฒŒ ๊ฐœ๋ฐœ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

3. ๋‹ค์–‘์„ฑ. ๋ณด๋‹ค ๋งŽ์€ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, tool ๋“ค์ด ์กด์žฌํ•œ๋‹ค.

 

์•„๋ž˜ ๊ทธ๋ฆผ์€ ๋ณธ์ธ์ด pyqtgraph๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ serial port๋ฅผ ์‚ฌ์šฉํ•œ ์žฅ๋น„์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋กœ๊ทธ๋žจ ํ™”๋ฉด์ด๋‹ค. 

 

 

pyqtgraph์™€ pyqt๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊น”๋”ํ•œ ๊ทธ๋ž˜ํ”„์™€ ์ด์™ธ์— ์ธ๋””์ผ€์ดํ„ฐ ํ‘œ์‹œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.  

 

pyqtgraph์˜ ๋ณด๋‹ค ์ž์„ธํ•œ ๋‚ด์šฉ์€ www.pyqtgraph.org/ 

 

์ด์™ธ์— ๊ถ๊ธˆํ•œ ์ ์ด๋‚˜ ๋ฌธ์˜์‚ฌํ•ญ์€ ๋Œ“๊ธ€ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.