Bokeh(보케)는 데이터 시각화를 지원하는 오픈소스 파이썬 패키지입니다. Bokeh는 HTML과 JavaScript를 사용해 플롯을 렌더링하기 때문에 웹 기반 대시보드를 구축할 때 특히 유용합니다.
데이터 시각화는 복잡한 계산이나 숫자를 일일이 확인하지 않고도 데이터 안에서 어떤 일이 벌어지고 있는지 직관적으로 파악할 수 있게 해주는 중요한 과정입니다.
Bokeh의 주요 특징
Bokeh는 NumPy, Pandas 등 다른 파이썬 패키지와 손쉽게 함께 사용할 수 있으며, 인터랙티브한 플롯과 대시보드를 손쉽게 제작할 수 있습니다. 이를 통해 정량적인 인사이트를 청중에게 효과적으로 전달할 수 있습니다.
Bokeh는 데이터 소스를 JSON 파일로 변환하고, 이 파일은 JavaScript 라이브러리인 BokehJS의 입력으로 사용됩니다. BokehJS는 TypeScript로 작성되어 최신 브라우저에서 시각화를 렌더링하는 역할을 담당합니다.
Matplotlib나 Seaborn이 정적(static) 플롯을 생성하는 것과 달리, Bokeh는 인터랙티브(interactive) 플롯을 생성합니다. 즉, 사용자가 플롯과 상호작용하면 그래프가 그에 맞게 반응하여 변화합니다.
또한 생성된 플롯은 Flask나 Django 기반 웹 애플리케이션에 임베딩할 수 있으며, Jupyter 노트북에서도 렌더링하여 바로 확인할 수 있습니다.
Bokeh 설치 및 의존성 패키지
Bokeh를 사용하려면 아래와 같은 의존성 패키지들이 필요합니다.
Numpy
Pillow
Jinja2
Packaging
Pyyaml
Six
Tornado
Python-dateutil
Windows 명령 프롬프트에서 설치
pip3 install bokeh
Anaconda 프롬프트에서 설치
conda install bokeh
선 그래프 예제 코드
다음은 Bokeh를 사용해 간단한 선 그래프를 그리는 예제입니다.
from bokeh.plotting import figure, output_file, show
x = [7, 3, 5, 9, 2, 0]
y = [2, 5, 8, 1, 2, 4]
output_file('sample.html')
fig = figure(title = 'Line plot ', x_axis_label = 'x', y_axis_label = 'y')
fig.line(x,y)
show(fig)
실행 결과
위 코드를 실행하면 'sample.html' 파일이 생성되며, 브라우저에서 x축과 y축 레이블이 표시된 선 그래프를 확인할 수 있습니다.
코드 설명
필요한 패키지들을 임포트하고 사용합니다.
그릴 데이터를 두 개의 리스트(x, y)로 정의합니다.
'output_file' 함수를 호출하여 생성될 HTML 파일의 이름을 지정합니다.
'figure' 함수를 호출해 그래프 제목과 축 레이블을 설정합니다.
Bokeh에 내장된 'line' 함수를 호출해 선 그래프를 그립니다.
'show' 함수를 사용해 완성된 플롯을 화면에 표시합니다.