[파이썬] bokeh 웹 서비스와 `bokeh` 통합하기

bokeh-banner

Bokeh는 파이썬 기반의 대화형 시각화 라이브러리로, 웹 애플리케이션에서 사용할 수 있는 풍부한 시각화 도구를 제공합니다. Bokeh를 사용하면 통계적인 그래프, 대시보드, 대화형 플롯 등을 손쉽게 생성할 수 있습니다. 이러한 장점을 최대한 활용하기 위해 Bokeh 웹 서비스와 Bokeh를 통합하는 방법에 대해 알아보겠습니다.

Bokeh 웹 서비스 소개

Bokeh 웹 서비스는 Bokeh 라이브러리를 사용하여 웹 애플리케이션을 개발하고 배포할 수 있는 프레임워크입니다. Bokeh 웹 서비스는 Bokeh 서버와 함께 작동하며, 사용자가 인터랙티브한 시각화를 웹 브라우저에서 볼 수 있게 해줍니다. Bokeh 웹 서비스는 파이썬 기반으로 작성되어 있으며, Bokeh 라이브러리와 시각화 템플릿 엔진인 Jinja2를 사용합니다.

Bokeh 웹 서비스와 Bokeh 통합하기

Bokeh 웹 서비스를 사용하여 Bokeh를 통합하기 위해서는 다음 단계를 따라야 합니다:

  1. Bokeh 라이브러리와 Bokeh 웹 서비스를 모두 설치합니다.
  2. Bokeh 라이브러리를 사용하여 원하는 시각화를 생성합니다.
  3. Bokeh 웹 서비스의 템플릿 엔진을 사용하여 시각화를 웹 페이지에 적용합니다.
  4. Bokeh 웹 서비스를 배포하여 사용자들이 인터랙티브한 시각화를 웹 브라우저에서 볼 수 있도록 합니다.

예제 코드

다음은 Bokeh 라이브러리와 Bokeh 웹 서비스를 통합하는 예제 코드입니다. 이 예제에서는 막대 그래프를 생성하고 Bokeh 웹 서비스의 템플릿 엔진을 사용하여 시각화를 웹 페이지에 적용합니다.

import numpy as np
from bokeh.plotting import figure
from bokeh.models import ColumnDataSource
from bokeh.embed import components
from bokeh.templates import JINJA_TEMPLATE

# 데이터 생성
x = np.array(['A', 'B', 'C', 'D'])
y = np.array([10, 20, 15, 30])

# ColumnDataSource 생성
source = ColumnDataSource(data=dict(x=x, y=y))

# 그래프 생성
p = figure(x_range=x, plot_height=350, title="Example Bar Chart",
           toolbar_location=None, tools="")

p.vbar(x='x', top='y', width=0.9, source=source, legend_label="Value")

p.xgrid.grid_line_color = None
p.legend.orientation = "horizontal"
p.legend.location = "top_center"

# 시각화의 JavaScript와 HTML 코드 생성
js_code, html_code = components(p, wrap_script=False, wrap_plot_info=False, template=JINJA_TEMPLATE)

# 시각화를 웹 페이지에 적용하기 위한 템플릿 사용
template_vars = {'js_code': js_code, 'html_code': html_code}
rendered_html = JINJA_TEMPLATE.render(**template_vars)

# 웹 페이지 저장
with open('bokeh_integration.html', 'w') as f:
    f.write(rendered_html)

위 코드에서는 numpy 패키지를 사용하여 데이터를 생성하고, figure 함수를 사용하여 막대 그래프를 생성합니다. 이후 ColumnDataSource 객체를 생성하여 그래프에 사용할 데이터를 지정하고, vbar 함수를 사용하여 막대 그래프를 그립니다. 마지막으로 components 함수를 사용하여 시각화의 JavaScript와 HTML 코드를 생성하고, 템플릿 엔진을 사용하여 시각화를 웹 페이지에 적용합니다.

위 예제 코드를 실행하면 bokeh_integration.html 파일에 시각화가 저장됩니다. 생성된 HTML 파일을 웹 서버에 배포하면 사용자들이 인터랙티브한 시각화를 웹 브라우저에서 볼 수 있습니다.

결론

Bokeh를 사용하여 생성한 시각화를 Bokeh 웹 서비스와 통합하면 웹 상에서 인터랙티브하게 시각화를 공유하고 배포할 수 있습니다. Bokeh 웹 서비스를 활용하여 시각화를 웹 애플리케이션에 적용하고, Bokeh의 강력한 기능들을 최대한 활용해보세요.