Bokeh은 파이썬 기반의 데이터 시각화 라이브러리로, 다양한 플로팅 기능과 상호작용이 가능한 웹 기반 인터페이스로 제공됩니다. Bokeh를 사용하여 생성한 차트와 그래프를 웹 기반 플랫폼에 통합하는 방법을 알아보겠습니다.
1. Bokeh 서버를 활용한 통합
Bokeh는 자체적으로 서버 기능을 제공하여 인터랙티브한 시각화를 더욱 효과적으로 제공할 수 있습니다. Bokeh 서버를 통해 생성한 차트를 웹서버에 호스팅하여 다른 사용자들과 공유할 수 있습니다. 아래는 Bokeh 서버를 통해 차트를 웹에 표시하는 예제입니다.
from bokeh.plotting import figure
from bokeh.io import curdoc
# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
# 차트 생성
p = figure(title="Bokeh 웹 통합", x_axis_label='x', y_axis_label='y')
p.line(x, y, legend_label="Line", line_width=2)
# Bokeh 서버에 차트 추가
curdoc().add_root(p)
위 코드를 실행하면 Bokeh 서버가 실행되고, http://localhost:5006 주소로 접속하면 차트가 표시됩니다. 이렇게 생성한 Bokeh 서버를 웹 기반 플랫폼에서 사용하면, 다른 사용자들과 실시간으로 차트를 공유할 수 있습니다.
2. Bokeh 출력을 HTML로 내보내기
Bokeh는 시각화 결과를 HTML 형식으로 내보내는 기능을 제공합니다. 이를 활용하여 Bokeh로 생성한 차트를 웹 페이지에 통합하는 방법도 있습니다. 아래는 Bokeh를 사용하여 차트를 HTML로 변환하는 코드입니다.
from bokeh.plotting import figure
from bokeh.embed import file_html
from bokeh.resources import CDN
# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
# 차트 생성
p = figure(title="Bokeh 웹 통합", x_axis_label='x', y_axis_label='y')
p.line(x, y, legend_label="Line", line_width=2)
# Bokeh 차트를 HTML로 전환
html = file_html(p, CDN, "Bokeh 웹 통합")
# HTML 파일로 저장 또는 웹 페이지에 삽입하여 통합
with open("bokeh_integration.html", "w") as f:
f.write(html)
위 코드를 실행하면 bokeh_integration.html
파일에 Bokeh로 생성한 차트가 HTML 형식으로 저장됩니다. 이 파일을 웹 페이지에 삽입하거나 웹 기반 플랫폼에 업로드하여 Bokeh 차트를 통합할 수 있습니다.
3. Bokeh와 웹 프레임워크 통합
Bokeh와 함께 사용되는 웹 프레임워크인 Flask, Django, Dash 등을 활용하여 Bokeh 시각화를 웹 애플리케이션에 통합할 수도 있습니다. 이러한 웹 프레임워크를 사용하면 Bokeh 차트를 웹 애플리케이션의 일부로 포함할 수 있어 사용자와의 상호작용이나 다른 기능들을 손쉽게 추가할 수 있습니다.
예를 들어, Flask와 Bokeh를 함께 사용하여 웹 애플리케이션을 개발하는 예제 코드는 다음과 같습니다.
from flask import Flask, render_template
from bokeh.plotting import figure
from bokeh.embed import components
app = Flask(__name__)
@app.route('/')
def index():
# 데이터 생성
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
# 차트 생성
p = figure(title="Bokeh 웹 통합", x_axis_label='x', y_axis_label='y')
p.line(x, y, legend_label="Line", line_width=2)
# Bokeh 차트를 HTML로 전환하여 Flask에 렌더링
script, div = components(p)
return render_template('index.html', script=script, div=div)
if __name__ == '__main__':
app.run()
위 코드는 Flask를 사용하여 Bokeh 차트를 웹 페이지에 통합하는 예제입니다. index.html
은 Flask의 템플릿 엔진을 사용하여 Bokeh 차트를 표시할 수 있도록 처리되어야 합니다.
마치며
Bokeh를 웹 기반 플랫폼과 통합하는 방법에 대해 알아보았습니다. Bokeh 서버를 활용하거나, Bokeh 출력을 HTML로 내보내거나, 커스텀 웹 애플리케이션을 개발하는 등 다양한 방법을 사용하여 Bokeh 시각화를 웹에 통합할 수 있습니다. 이를 통해 보다 동적이고 상호작용적인 데이터 시각화를 웹에서 제공할 수 있습니다.