728x90

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
'Artificial Intelligence > 60. Python' 카테고리의 다른 글
| [PYTHON] Pygwalker : Pandas + Streamlit의 시각적 혁신 도구 (0) | 2025.07.23 |
|---|---|
| [PYTHON] Altair로 구현하는 선언적 데이터 시각화의 진수 (0) | 2025.07.23 |
| [PYTHON] Plotly로 구현하는 인터랙티브 데이터 시각화 완전 가이드 (0) | 2025.07.23 |
| [PYTHON] xlsxwriter로 엑셀 자동화 보고서 완전 정복 (0) | 2025.07.22 |
| [PYTHON] xlwings로 엑셀을 직접 제어하는 실전 자동화 가이드 (0) | 2025.07.22 |