Bokeh는 파이썬에서 데이터 시각화를 도와주는 오픈 소스 패키지입니다. Bokeh는 HTML과 JavaScript를 사용해 플롯을 렌더링하기 때문에, 웹 기반 환경에서 작업할 때 특히 유용하게 활용할 수 있습니다.
Bokeh는 데이터 소스를 JSON 파일로 변환합니다. 이 파일은 자바스크립트 라이브러리인 BokehJS의 입력값으로 사용되며, BokehJS는 TypeScript로 작성되어 최신 웹 브라우저에서 시각화 결과물을 렌더링하는 역할을 담당합니다.
Bokeh의 주요 의존성
Numpy
Pillow
Jinja2
Packaging
Pyyaml
Six
Tornado
Python-dateutil
Bokeh 설치 방법
Windows 명령 프롬프트에서 설치하는 경우 다음 명령어를 입력합니다.
pip3 install bokeh
Anaconda 환경이라면 아래 명령어로 설치할 수 있습니다.
conda install bokeh
그럼 실제 예제를 통해 여러 막대 플롯을 그리는 방법을 살펴보겠습니다.
예제 코드
from bokeh.plotting import figure, output_file, show
from bokeh.transform import dodge
labs = ['label_1', 'label_2', 'label_3']
vals = ['val_1','val_2','val_3']
my_data = {'labs':labs,
'val_1':[2,5,11],
'val_2':[34,23,1],
'val_3':[25, 34, 23]
}
fig = figure(x_range = labs, plot_width = 300, plot_height = 300)
fig.vbar(x = dodge('labs', -0.25, range = fig.x_range), top = 'val_1',
width = 0.2,source = my_data, color = "green")
fig.vbar(x = dodge('labs', 0.0, range = fig.x_range), top = 'val_2',
width = 0.2, source = my_data,color = "cyan")
fig.vbar(x = dodge('labs', 0.25, range = fig.x_range), top = 'val_3',
width = 0.2,source = my_data,color = "blue")
show(fig)
실행 결과

코드 설명
필요한 패키지들을 임포트하고 별칭(alias)을 지정합니다.
figure 함수를 호출하면서 플롯의 너비와 높이를 설정합니다.
데이터는 리스트 형태로 정의하여 딕셔너리에 담습니다.
'output_file' 함수는 생성될 HTML 파일의 이름을 지정할 때 사용되며, 필요에 따라 호출합니다.
Bokeh의 'vbar' 함수를 데이터와 함께 호출해 막대를 그립니다. 이때 'dodge' 변환을 활용하면 같은 x축 위치에 여러 막대를 나란히 배치할 수 있습니다.
마지막으로 'show' 함수를 사용해 완성된 플롯을 화면에 표시합니다.
이처럼 dodge 변환과 vbar 함수를 조합하면 하나의 카테고리 축 위에 값이 서로 다른 여러 개의 막대를 손쉽게 나란히 배치할 수 있습니다. 색상(color)과 막대 폭(width), 오프셋 값을 조절하면 가독성 높은 비교 차트를 만들 수 있으니, 다양한 데이터에 적용해 보시기 바랍니다.