[파이썬] bokeh 그래프 내부의 툴팁 및 호버 정보 사용법

Bokeh(보케)는 파이썬으로 데이터 시각화를 할 때 많이 사용되는 도구 중 하나입니다. Bokeh를 사용하여 그래프를 생성하고 표시할 때, 그래프의 각 요소에 툴팁과 호버 정보를 추가할 수 있습니다. 툴팁은 마우스를 해당 요소 위에 올리면 표시되는 작은 정보 창이며, 호버는 요소 위에 마우스를 올렸을 때 설정한 작업을 수행하는 기능입니다. 이번 포스트에서는 Bokeh 그래프 내부에 툴팁과 호버 정보를 추가하는 방법에 대해 알아보겠습니다.

툴팁 추가하기

Bokeh 그래프에 툴팁을 추가하려면 HoverTool 클래스를 사용해야 합니다. 다음은 툴팁을 추가하는 간단한 예제입니다.

from bokeh.plotting import figure, show
from bokeh.models import HoverTool
from bokeh.sampledata.iris import flowers

# 그래프 생성하기
p = figure(title='Iris 데이터 세트', plot_width=400, plot_height=400)

# 데이터 포인트를 표시하기 위한 도형 추가하기
p.circle('sepal_length', 'sepal_width', source=flowers)

# 툴팁 설정하기
tooltips = [
    ('품종', '@species'),
    ('꽃잎 길이', '@petal_length'),
    ('꽃잎 너비', '@petal_width')
]

hover_tool = HoverTool(tooltips=tooltips)
p.add_tools(hover_tool)

# 그래프 표시하기
show(p)

위의 코드에서 p.circle로 데이터를 그리고, HoverTool을 생성하여 tooltips를 설정한 다음, add_tools 메서드를 사용하여 그래프에 hover_tool을 추가합니다. 마우스를 데이터 포인트 위에 올리면 툴팁이 표시됩니다. tooltips에서는 @ 기호를 사용하여 그래프에서 표시할 변수 이름을 지정할 수 있습니다.

호버 정보 추가하기

그래프 요소에 호버를 설정하려면 HoverTool 클래스의 callbacks 속성을 사용합니다. 다음은 특정 요소 위에 호버를 할 때 작업을 수행하는 예제입니다.

from bokeh.plotting import figure, show
from bokeh.models import HoverTool
from bokeh.sampledata.iris import flowers

# 그래프 생성하기
p = figure(title='Iris 데이터 세트', plot_width=400, plot_height=400)

# 데이터 포인트를 표시하기 위한 도형 추가하기
circles = p.circle('sepal_length', 'sepal_width', source=flowers)

# 호버 작업 설정하기
hover_tool = HoverTool(renderers=[circles], tooltips=[('품종', '@species')])

# 호버 작업에 대한 콜백 함수 정의하기
def callback_hover(event):
    index = event.index
    print(f"선택한 데이터 포인트 인덱스: {index}")

hover_tool.callback = callback_hover

# 그래프에 호버 툴 추가하기
p.add_tools(hover_tool)

# 그래프 표시하기
show(p)

위의 코드에서는 호버 작업에 대한 콜백 함수 callback_hover를 정의하고, HoverToolcallback 속성에 할당합니다. 이렇게 하면 호버 작업을 수행할 때마다 callback_hover 함수가 호출되고 선택한 데이터 포인트의 인덱스를 출력합니다.

Bokeh를 사용하여 그래프를 효과적으로 시각화하고, 툴팁 및 호버 정보를 추가하여 사용자에게 더 많은 정보를 제공할 수 있습니다. 이를 통해 데이터를 더욱 쉽게 이해하고, 인사이트를 도출하는 데 도움이 될 것입니다.