[python] Bokeh를 활용한 여행 데이터 시각화

여행 데이터를 시각화하여 보여주는 것은 다양한 인사이트를 얻을 수 있는 훌륭한 방법입니다. 이번에는 Bokeh라는 파이썬 라이브러리를 사용하여 여행 데이터를 인터랙티브하게 시각화하는 방법을 알아보겠습니다.

Bokeh 소개

Bokeh는 파이썬 기반의 데이터 시각화 라이브러리로, 웹 브라우저 상에서 인터랙티브한 그래프를 제공합니다. Bokeh는 다양한 형식의 시각화를 지원하며, 여행 데이터의 경우 지도, 선 그래프, 막대 그래프, 버블 차트 등 다양한 그래프 유형을 활용할 수 있습니다.

데이터 준비

시작하기 전에 시각화할 여행 데이터를 준비해야 합니다. 예를 들어, 다음과 같은 형식의 데이터를 사용해보겠습니다.

import pandas as pd

# 여행 데이터 불러오기
data = pd.read_csv('travel_data.csv')

지도 시각화

여행 데이터를 지도에 시각화하는 것은 매우 흥미로운 방법입니다. Bokeh는 여러 가지 방법으로 지도 시각화를 지원합니다.

from bokeh.plotting import figure, show
from bokeh.tile_providers import get_provider
from bokeh.io import output_notebook

# Jupyter Notebook에서 실행 시 필요한 설정
output_notebook()

# 타일 프로바이더 설정
tile_provider = get_provider('CARTODBPOSITRON')

# 플롯 생성
p = figure(x_axis_type="mercator", y_axis_type="mercator", width=800, height=600)
p.add_tile(tile_provider)

# 데이터 포인트 추가
p.circle(x='longitude', y='latitude', size=10, fill_color='red', fill_alpha=0.6, source=data)

# 플롯 출력
show(p)

위의 코드는 CARTODBPOSITRON 타일 프로바이더를 사용하여 지도를 생성하고, 데이터를 포인트로 추가합니다. 포인트의 위치, 크기, 색상 등은 데이터에 따라 설정할 수 있습니다.

선 그래프 시각화

여행 데이터의 시간에 따른 변화를 보여주고 싶다면 선 그래프를 활용할 수 있습니다. Bokeh는 간단한 코드로 선 그래프를 그릴 수 있습니다.


from bokeh.models import ColumnDataSource
from bokeh.models.tools import HoverTool

# 데이터 프레임을 ColumnDataSource로 변환
source = ColumnDataSource(data)

# 플롯 생성
p = figure(x_axis_type='datetime', width=800, height=400)

# 선 그래프 추가
p.line(x='date', y='sales', source=source)

# 툴팁 설정
hover = HoverTool(tooltips=[
    ('Date', '@date{%Y-%m-%d}'),
    ('Sales', '@sales{$0,0}')
], formatters={'@date': 'datetime'})
p.add_tools(hover)

# 플롯 출력
show(p)

위의 코드는 주어진 날짜와 판매량 데이터를 이용해 선 그래프를 그리고, 툴팁을 설정합니다. 마우스를 그래프 위에 올리면 해당 날짜와 판매량을 확인할 수 있습니다.

막대 그래프 및 버블 차트 시각화

통계적인 정보를 강조하고 싶다면 막대 그래프나 버블 차트를 활용할 수 있습니다.

# 플롯 생성
p = figure(width=800, height=400)

# 막대 그래프 추가
p.vbar(x='country', top='population', width=0.8, source=data)

# 플롯 출력
show(p)
# 플롯 생성
p = figure(width=800, height=400)

# 버블 차트 추가
p.circle(x='latitude', y='longitude', size='population', fill_color='blue', fill_alpha=0.6, source=data)

# 플롯 출력
show(p)

위의 코드는 각각 막대 그래프와 버블 차트를 생성하고, 데이터를 추가하는 부분입니다. 막대 그래프의 경우 국가와 인구 수를 이용해 그릴 수 있고, 버블 차트의 경우 위도, 경도, 인구 수를 이용해 그릴 수 있습니다.

결론

이제 여행 데이터를 Bokeh를 사용하여 인터랙티브하게 시각화하는 방법을 알게 되었습니다. Bokeh는 다양한 그래프 유형과 설정을 제공하여 다양한 형태의 여행 데이터를 탐색할 수 있습니다. 더 많은 기능과 옵션을 알아보고 싶다면 Bokeh의 공식 문서를 참고하시기 바랍니다.

참고 문서: