[python] Bokeh를 사용하여 웹상에서 인터랙티브한 시각화 구현하기

Bokeh는 Python으로 데이터 시각화를 위한 강력한 라이브러리입니다. 이를 사용하면 웹상에서 인터랙티브한 그래프와 차트를 만들 수 있습니다. 이번 블로그 포스트에서는 Bokeh를 사용하여 웹상에서 인터랙티브한 시각화를 구현하는 방법에 대해 알아보겠습니다.

설치하기

Bokeh를 사용하기 위해 먼저 설치해야 합니다. Anaconda를 사용하는 경우, 아래의 명령어를 사용하여 Bokeh를 설치할 수 있습니다:

conda install bokeh

만약 pip를 사용하는 경우, 다음 명령어를 사용하세요:

pip install bokeh

Bokeh 기본 사용법

Bokeh를 사용하여 웹상에서 인터랙티브한 시각화를 구현하기 위해서는 몇 가지 기본 개념을 알아야 합니다. Bokeh는 다양한 시각화 요소들을 기본적으로 제공하며, 위젯과 콜백을 통해 인터랙티브한 기능을 구현할 수 있습니다.

Figure 생성하기

Bokeh에서 시각화를 시작하기 위해 먼저 figure 객체를 생성해야 합니다. 이 객체는 그래프나 차트의 속성을 설정하는 데 사용됩니다. 예를 들어, 아래의 코드는 선 그래프를 생성하는 데에 사용됩니다:

from bokeh.plotting import figure, show

# figure 객체 생성
p = figure()

# 데이터 추가
p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5])

# 그래프 표시
show(p)

인터랙티브한 기능 추가하기

Bokeh를 사용하여 인터랙티브한 시각화를 구현하려면 위젯과 콜백을 사용해야 합니다. 위젯은 사용자 인터페이스 요소로서 그래프나 차트를 제어하고 조작하는 데 사용됩니다. 콜백은 위젯 동작에 따라 그래프나 차트를 업데이트하는 함수입니다.

예를 들어, 아래의 코드는 슬라이더 위젯과 콜백 함수를 추가하여 그래프를 동적으로 업데이트하는 예입니다:

from bokeh.plotting import figure, curdoc
from bokeh.models import Slider
from bokeh.layouts import column

# figure 객체 생성
p = figure()

# 데이터 추가
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
p.line(x, y)

# 슬라이더 위젯 생성
slider = Slider(title="슬라이더", start=1, end=10, step=0.1, value=1)

# 콜백 함수 정의
def update_plot(attr, old, new):
    p.line(x, [i * new for i in y])

# 위젯에 콜백 함수 추가
slider.on_change('value', update_plot)

# 레이아웃 생성
layout = column(slider, p)

# 웹상에서 그래프 표시
curdoc().add_root(layout)

마무리

이렇게 Bokeh를 사용하여 웹상에서 인터랙티브한 시각화를 구현할 수 있습니다. Bokeh는 다양한 시각화 요소와 인터랙티브한 기능을 제공하여 데이터를 효과적으로 시각화할 수 있도록 도와줍니다. Bokeh의 높은 수준의 유연성과 다양한 기능을 통해 웹상에서 멋진 데이터 시각화를 구현해 보세요!

참고 자료