Bokeh는 Python에서 데이터 시각화를 돕는 오픈 소스 패키지입니다. Bokeh는 HTML과 JavaScript를 사용해 플롯을 렌더링하기 때문에 웹 기반 대시보드를 구축할 때 특히 유용합니다.
Bokeh의 작동 원리
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 명령 프롬프트에서 Bokeh를 설치하려면 다음 명령어를 실행합니다.
pip3 install bokeh
Anaconda 환경에서는 아래 명령어를 사용합니다.
conda install bokeh
막대 그래프 예제 코드
from bokeh.plotting import figure, output_file, show
xvals = ['label_1', 'label_2', 'label_3']
yvals = [56, 78, 99]
fig = figure(x_range = xvals, plot_width = 400, plot_height = 300)
cols = ['navy','cyan','orange']
fig.vbar(x = xvals, top = yvals, color = cols, width = 0.5)
show(fig)
코드 설명
- 필요한 패키지들을 가져와(import) 별칭을 지정합니다.
- figure 함수를 호출하면서 플롯의 너비와 높이를 설정합니다.
- 데이터는 리스트 형태로 정의됩니다.
- 색상 리스트를 별도로 정의하면 막대 그래프의 각 막대에 서로 다른 색상을 지정할 수 있습니다.
- 'output_file' 함수를 호출하여 생성될 HTML 파일의 이름을 지정합니다.
- Bokeh에 내장된 'vbar' 함수를 데이터와 함께 호출하여 세로 막대를 그립니다.
- 'show' 함수를 사용해 최종 플롯을 화면에 표시합니다.