본문 바로가기
Artificial Intelligence/60. Python

[PYTHON] Bokeh로 만드는 실시간 웹 기반 인터랙티브 시각화

by Papa Martino V 2025. 7. 23.
728x90

Bokeh로 만드는 실시간 웹 기반 인터랙티브 시각화
[PYTHON] Bokeh

 

1. Bokeh란?

Bokeh는 Python을 기반으로 한 오픈소스 인터랙티브 데이터 시각화 라이브러리입니다. 웹 브라우저에서 직접 실행 가능한 시각화를 생성할 수 있어 웹 대시보드, 실시간 차트, 데이터 리포트 등 다양한 분야에 활용됩니다. 특히 Bokeh는 HTML, JavaScript를 자동 생성하기 때문에 웹 개발 지식 없이도 강력한 시각화 기능을 제공할 수 있습니다.

2. Bokeh 설치 방법

pip install bokeh

설치 후에는 Bokeh 서버 및 HTML 출력 모두 지원됩니다.

3. 주요 라이브러리 비교

기능 Bokeh Plotly Matplotlib
인터랙티브 기능 강력함 매우 강력 제한적
실시간 업데이트 지원 제한적 불가
웹 배포 지원 (HTML, 서버) 지원 미지원
대시보드 구성 지원 Dash 연동 불가
학습 난이도 중간 쉬움 쉬움

4. 기본 예제: HTML 파일로 시각화 출력


from bokeh.plotting import figure, output_file, save

output_file("line_chart.html")

p = figure(title="선형 차트 예제", x_axis_label="X", y_axis_label="Y")
p.line([1, 2, 3, 4], [3, 7, 8, 5], line_width=2)

save(p)
      

위 코드는 간단한 선형 차트를 생성하여 HTML 파일로 저장합니다.

5. 실시간 업데이트 예제 (Bokeh Server)


from bokeh.plotting import figure, curdoc
from bokeh.models import ColumnDataSource
from random import randint
from bokeh.layouts import layout

source = ColumnDataSource(data=dict(x=[], y=[]))
plot = figure()
plot.line(x='x', y='y', source=source)

def update():
    new_data = dict(x=[len(source.data['x'])], y=[randint(0, 10)])
    source.stream(new_data, rollover=10)

curdoc().add_root(layout([plot]))
curdoc().add_periodic_callback(update, 1000)
      

이 코드는 1초마다 새로운 데이터를 그래프에 반영하는 실시간 차트를 구현합니다.

6. Bokeh의 활용 사례

  • 금융 데이터 대시보드: 주가, 환율 등 실시간 변동 차트 구현
  • 교육 플랫폼 시각화: 학생 성취도와 수강 현황 그래프화
  • IoT 센서 데이터 시각화: 온도, 습도 등 환경 정보 실시간 표시
  • 헬스케어: 생체 정보 및 운동 결과 시각 분석

7. Bokeh의 장점 및 단점

장점 단점
실시간 데이터 처리 및 시각화 가능 브라우저 성능에 따라 대량 데이터는 부담
대시보드 구현이 간단 모바일 대응은 제한적
직관적인 코드 구조 복잡한 시각화에서는 커스터마이징 어려움
웹 개발 지식 없이 HTML, JS 생성 가능 커뮤니티 및 레퍼런스는 Plotly보다 적음

8. 자주 묻는 질문

Q. Bokeh는 오프라인에서도 사용할 수 있나요?
A. 예, HTML 파일로 저장하면 언제 어디서든 열 수 있습니다.
Q. Plotly와 같이 사용할 수 있나요?
A. 목적이 다르므로 프로젝트에 따라 병행 사용도 가능합니다.
Q. Jupyter Notebook에서도 사용 가능한가요?
A. 가능합니다. output_notebook() 함수를 사용하면 됩니다.

9. 마무리

Python으로 인터랙티브한 시각화를 구현하려면 Bokeh는 매우 훌륭한 선택입니다. 특히 웹 기반 대시보드, 실시간 데이터 반영, HTML 출력 등의 기능을 통해 비전공자도 손쉽게 데이터 시각화를 웹에 구현할 수 있습니다. 이제 여러분의 데이터를 단순한 수치에서 생생한 시각 콘텐츠로 전환해보세요. Bokeh는 데이터에 생명을 불어넣는 도구입니다.

출처

728x90