[파이썬] bokeh 그래프에 대한 사용자 피드백 수집

Bokeh은 파이썬 기반의 인터랙티브 시각화 라이브러리입니다. 그래프와 차트를 만들고 사용자와 상호작용할 수 있는 기능을 제공하여 데이터의 시각적 표현을 더욱 향상시킵니다. 그러나 그래프에 대한 사용자 피드백을 수집하고 분석하는 것은 중요한 과제입니다. 이 블로그 포스트에서는 Bokeh을 사용하여 그래프에 대한 사용자 피드백을 수집하는 방법에 대해 알아보겠습니다.

1. 툴팁을 활용한 사용자 피드백

Bokeh 그래프에서 사용자가 데이터 포인트 위로 마우스를 올리면, 해당 데이터 포인트에 대한 툴팁을 표시할 수 있습니다. 이를 활용하여 사용자들이 어떤 데이터에 관심을 가지고 있는지 파악할 수 있습니다. 예를 들어, 사용자들이 어떤 지역에서 가장 많이 클릭하는지를 그래프의 툴팁을 통해 확인할 수 있습니다.

from bokeh.io import output_file, show
from bokeh.layouts import column
from bokeh.models import HoverTool
from bokeh.plotting import figure

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

# 툴팁 설정
tooltips = [
    ("Data Point", "@x, @y"),
]

# 그래프 생성
p = figure(plot_width=400, plot_height=400, tooltips=tooltips)
p.circle(x, y, size=10, fill_alpha=0.5)

# 그래프 출력
output_file("feedback_graph.html")
show(column(p))

위의 코드에서 tooltips 변수에 설정된 리스트를 통해 툴팁을 정의합니다. xy는 데이터 포인트의 값으로 표시됩니다. 마우스를 데이터 포인트 위로 올렸을 때, 해당 데이터 포인트의 xy 값을 툴팁으로 표시됩니다.

2. 사용자 입력을 통한 피드백 수집

Bokeh은 다양한 사용자 입력 요소를 제공하여 그래프와 상호작용할 수 있도록 해줍니다. 사용자가 그래프에 대한 피드백을 제공할 수 있는 입력 요소를 추가하는 방법을 살펴보겠습니다.

from bokeh.io import output_file, show
from bokeh.layouts import column
from bokeh.models import TextInput
from bokeh.plotting import figure

# 입력 요소 생성
feedback_input = TextInput(placeholder="피드백을 입력하세요...")

# 그래프 생성
p = figure(plot_width=400, plot_height=400)
p.circle([1, 2, 3], [4, 5, 6], size=10, fill_alpha=0.5)

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

# 그래프 출력
output_file("feedback_graph.html")
show(layout)

위의 코드에서 TextInput 클래스를 사용하여 사용자 입력을 받을 수 있는 입력 요소를 생성합니다. placeholder 속성은 입력 필드에 초기 힌트 메시지를 표시합니다. 사용자가 해당 입력 필드에 피드백을 입력하면, 이를 서버 측에서 저장하거나 분석할 수 있습니다.

3. 서버와의 연동을 통한 피드백 수집

Bokeh는 서버와의 연동을 통해 실시간으로 그래프와 상호작용할 수 있는 기능을 제공합니다. 사용자 피드백을 실시간으로 수집하기 위해서는 Bokeh 서버를 설정해야 합니다. 이를 위해 bokeh serve 명령을 사용하여 Bokeh 서버를 실행할 수 있습니다.

bokeh serve --show feedback_app.py

위의 명령어를 실행하면 feedback_app.py 파일에 정의된 Bokeh 애플리케이션이 실행됩니다. 이 애플리케이션에서는 그래프와 입력 요소를 포함하고 있으며, 사용자가 입력한 피드백을 서버로 전송할 수 있습니다. 서버는 이 피드백을 저장하거나 분석하는 등의 작업을 수행할 수 있습니다.

마치며

이 블로그 포스트에서는 Bokeh 그래프에 대한 사용자 피드백을 수집하는 방법을 살펴보았습니다. 그래프에 마우스 오버 툴팁, 사용자 입력 요소, 서버와의 연동을 활용하여 사용자들의 관심사와 피드백을 파악할 수 있습니다. Bokeh을 사용하여 데이터 시각화와 사용자 피드백을 유기적으로 조합하면 더욱 풍부한 분석과 상호작용을 제공할 수 있습니다.