Bokeh는 파이썬에서 데이터 시각화를 손쉽게 구현할 수 있도록 도와주는 오픈소스 패키지입니다. HTML과 JavaScript를 기반으로 플롯을 렌더링하기 때문에 웹 기반 대시보드를 만들 때 특히 유용합니다.
Bokeh의 주요 특징
Bokeh는 NumPy, Pandas 등 다른 파이썬 패키지와 자연스럽게 연동되며, 인터랙티브한 플롯과 대시보드를 간편하게 제작할 수 있다는 장점이 있습니다.
Bokeh 설치 및 의존성
Bokeh를 사용하려면 아래와 같은 의존성 패키지들이 필요합니다.
Numpy
Pillow
Jinja2
Packaging
Pyyaml
Six
Tornado
Python-dateutil
Windows 명령 프롬프트에서는 다음 명령어로 설치할 수 있습니다.
pip3 install bokeh
Anaconda 환경에서는 다음과 같이 설치합니다.
conda install bokeh
캔들스틱 차트 예제 코드
아래는 MSFT(마이크로소프트) 주가 데이터를 활용해 캔들스틱 차트를 그리는 예제입니다.
from math import pi
import pandas as pd
from bokeh.plotting import figure, output_file, show
from bokeh.sampledata.stocks import MSFT
my_df = pd.DataFrame(MSFT)[:35]
my_df["date"] = pd.to_datetime(my_df["date"])
inc = my_df.close > my_df.open
dec = my_df.open > my_df.close
w = 12*60*60*1000
TOOLS = "pan,wheel_zoom,box_zoom,reset,save"
p = figure(x_axis_type="datetime", tools=TOOLS, plot_width=1000, title = "Candlestick using MSFT data")
p.xaxis.major_label_orientation = pi/4
p.grid.grid_line_alpha=0.3
p.segment(my_df.date, my_df.high, my_df.date, my_df.low, color="black")
p.vbar(my_df.date[inc], w, my_df.open[inc], my_df.close[inc], fill_color="#D5E1DD", line_color="black")
p.vbar(my_df.date[dec], w, my_df.open[dec], my_df.close[dec], fill_color="#F2583E", line_color="black")
output_file("candlestick.html", title="candlestick plot")
show(p)참고: 이 코드를 실행하려면 Bokeh가 설치되어 있어야 하며, 샘플 데이터셋을 사용하기 위해 아래 명령어를 먼저 실행해야 합니다.
bokeh.sampledata.download()
실행 결과

코드 상세 설명
필요한 패키지들을 임포트하고 별칭(alias)을 지정합니다.
MSFT 데이터는 Bokeh 라이브러리에 내장된 샘플 데이터셋입니다.
해당 데이터는 Pandas 데이터프레임 형태로 저장됩니다.
figure 함수에 플롯의 너비와 높이 등 옵션을 지정하여 호출합니다.
output_file 함수를 호출해 생성될 HTML 파일의 이름을 지정합니다.
TOOLS 속성으로 패닝, 줌, 저장 등 인터랙티브 도구를 정의합니다.
Bokeh의 vbar 함수를 호출해 상승분과 하락분을 서로 다른 색상으로 표현합니다.
마지막으로 show 함수를 사용해 완성된 플롯을 화면에 출력합니다.