Bokeh란 무엇인가?
Bokeh는 파이썬(Python) 기반의 오픈소스 데이터 시각화 라이브러리입니다. 가장 큰 특징은 HTML과 JavaScript를 사용해 그래프를 렌더링한다는 점으로, 이 덕분에 웹 기반 대시보드(dashboard) 제작에 특히 유용합니다.
또한 Bokeh는 NumPy, Pandas 등 다른 파이썬 패키지와 손쉽게 연동할 수 있으며, 인터랙티브한 그래프와 대시보드를 손쉽게 만들 수 있습니다.
Matplotlib·Seaborn과의 차이점
Matplotlib나 Seaborn이 정적(static) 그래프를 생성하는 것과 달리, Bokeh는 인터랙티브(interactive) 그래프를 생성합니다. 즉, 사용자가 그래프와 상호작용하면(확대, 축소, 툴팁 확인 등) 그래프가 그에 맞게 반응하여 변화합니다.
이렇게 만든 그래프는 Flask나 Django 기반 웹 애플리케이션의 출력 결과로 삽입할 수도 있고, Jupyter Notebook에서 바로 렌더링할 수도 있습니다.
Bokeh의 의존성 패키지
Bokeh를 사용하기 위해 필요한 의존성 패키지는 다음과 같습니다.
Numpy
Pillow
Jinja2
Packaging
Pyyaml
Six
Tornado
Python-dateutil
Bokeh 설치 방법
Windows 명령 프롬프트(cmd)에서 설치하는 경우:
pip3 install bokeh
Anaconda 환경에서 설치하는 경우:
conda install bokeh
막대 그래프 예제 코드
Bokeh로 간단한 세로 막대 그래프(vbar)를 그리는 예제입니다.
from bokeh.plotting import figure, output_file, show
xvals = ['label_1', 'label_2', 'label_3']
yvals = [56, 78, 99]
fig = figure(x_range = xvals, width = 400, height = 300)
fig.vbar(x = xvals, top = yvals, width = 0.5)
show(fig)
※ 참고: 최신 버전의 Bokeh에서는 plot_width, plot_height 매개변수가 deprecated되었으며, 대신 width, height를 사용하는 것이 권장됩니다.
실행 결과

코드 설명
필요한 패키지(
figure,output_file,show)를 임포트합니다.x축 라벨과 y축 값의 데이터를 리스트 형태로 정의합니다.
figure함수를 호출하면서 그래프의 너비와 높이를 지정하고,x_range에 x축 라벨을 전달합니다.output_file함수를 호출해 생성될 HTML 파일의 이름을 지정합니다.Bokeh의
vbar함수를 호출하여 데이터를 기반으로 세로 막대를 그립니다. 여기서top은 각 막대의 높이(y값),width는 막대의 두께를 의미합니다.show함수를 호출하여 완성된 그래프를 화면에 표시합니다.