[python] Bokeh를 이용한 실시간 데이터 시각화

Bokeh는 Python 기반의 인터랙티브 시각화 라이브러리로, 실시간 데이터 시각화를 위한 강력한 도구입니다. Bokeh를 사용하면 웹 브라우저에서 동적인 차트와 그래프를 생성하고, 실시간으로 업데이트할 수 있습니다. 이번 포스트에서는 Bokeh를 사용하여 실시간 데이터를 시각화하는 방법에 대해 알아보겠습니다.

Bokeh 설치

먼저, Bokeh를 설치해야 합니다. 아래의 명령어를 사용하여 Bokeh를 설치합니다.

pip install bokeh

실시간 데이터 시각화 구현하기

Bokeh를 사용하여 실시간 데이터 시각화를 구현하는 방법은 다음과 같습니다.

  1. 필요한 모듈 가져오기
from bokeh.plotting import figure, show
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource
from bokeh.models import DatetimeTickFormatter
from bokeh.models import HoverTool

import datetime
from random import randint
  1. 실시간 데이터 생성하기
# 데이터 생성 함수
def generate_data():
    return datetime.datetime.now(), randint(0, 100)

# 초기 데이터 생성
data = {'x': [generate_data()[0]], 'y': [generate_data()[1]]}
  1. Bokeh figure 생성하기
# Bokeh figure 생성
p = figure(x_axis_type='datetime', plot_width=800, plot_height=400)
p.line(x='x', y='y', source=ColumnDataSource(data=data))
  1. 데이터 업데이트 처리하기
# 실시간 데이터 업데이트 함수
def update():
    new_data = {'x': [generate_data()[0]], 'y': [generate_data()[1]]}
    p.line(x='x', y='y', source=ColumnDataSource(data=new_data), color='red', line_width=2)

# 데이터 업데이트 간격 설정 (ms)
update_interval = 1000

# 데이터 업데이트 시작
curdoc().add_periodic_callback(update, update_interval)
  1. Bokeh 그래프 출력하기
# 그래프 출력
show(p)

실행하기

위의 코드를 bokeh_realtime.ipynb 파일에 복사하여 실행하면 웹 브라우저에서 실시간 데이터 시각화 그래프가 나타납니다. 데이터는 매 초마다 업데이트되며, 그래프는 계속해서 변경됩니다.

마무리

이번 포스트에서는 Bokeh를 사용하여 파이썬에서 실시간 데이터 시각화를 구현하는 방법을 알아보았습니다. Bokeh는 다양한 시각화 요구사항에 맞춰 풍부한 기능을 제공하므로, 데이터 시각화 작업에서 유용하게 사용될 수 있습니다. Bokeh의 더 많은 기능과 예제는 Bokeh 공식 문서를 참고하시기 바랍니다.