[파이썬] bokeh 복잡한 인터랙티브 도구 구현하기

Bokeh(보케)는 Python으로 데이터 시각화를 위한 오픈소스 라이브러리입니다. Bokeh를 사용하면 복잡한 인터랙티브 도구를 구현할 수 있습니다. 이번 블로그 포스트에서는 Bokeh를 사용하여 데이터 시각화 도구를 만드는 방법에 대해 알아보겠습니다.

Bokeh 설치하기

Bokeh를 사용하기 위해서는 우선 Bokeh 패키지를 설치해야 합니다. 다음 명령을 사용하여 Bokeh를 설치할 수 있습니다:

pip install bokeh

기본 예제: 선 그래프 그리기

먼저 간단한 예제로 선 그래프를 그려보겠습니다. 아래의 코드를 실행하여 선 그래프를 생성해 보세요:

from bokeh.plotting import figure, output_file, show

# 출력 파일 설정
output_file("line_plot.html")

# 데이터 준비
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

# 도구 생성
p = figure(title="Line Plot", x_axis_label='X', y_axis_label='Y')

# 선 그래프 추가
p.line(x, y, legend_label="Line 1", line_width=2)

# 그래프 보여주기
show(p)

위 코드를 실행하면 “line_plot.html” 파일이 생성되고, 선 그래프를 볼 수 있습니다.

인터랙티브 기능 추가하기

Bokeh의 강력한 기능 중 하나는 인터랙티브 동작을 추가할 수 있다는 것입니다. 예를 들어, 마우스를 통해 그래프의 특정 데이터 점을 선택하고 강조할 수 있습니다. 다음 예제를 통해 이를 확인해 보세요:

from bokeh.plotting import figure, output_file, show
from bokeh.models import ColumnDataSource, HoverTool

# 출력 파일 설정
output_file("interactive_plot.html")

# 데이터 준비
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
labels = ['A', 'B', 'C', 'D', 'E']

# 데이터 소스 생성
source = ColumnDataSource(data={'x': x, 'y': y, 'label': labels})

# 도구 생성
p = figure(title="Interactive Plot", x_axis_label='X', y_axis_label='Y')

# 데이터 점 추가
p.circle(x='x', y='y', source=source, legend_label="Data Points", size=10)

# 마우스 오버 툴 추가
hover_tool = HoverTool(tooltips=[("Label", "@label"), ("Coordinates", "($x, $y)")])
p.add_tools(hover_tool)

# 그래프 보여주기
show(p)

위 코드를 실행하면 “interactive_plot.html” 파일을 확인하면 됩니다. 마우스를 특정 데이터 점 위에 올리면 해당 점의 레이블과 좌표가 표시됩니다.

이렇듯 Bokeh는 복잡한 인터랙티브 도구를 구현하는 데 탁월한 라이브러리입니다. 다양한 형태의 그래프와 많은 인터랙티브 기능을 지원하기 때문에 데이터 시각화에 Bokeh을 사용하는 것은 매우 유용합니다.

더 많은 정보를 원한다면, Bokeh 공식 문서를 확인해보세요.