[python] Bokeh를 활용한 도시 교통속도 데이터 시각화

Bokeh는 Python의 데이터 시각화 라이브러리로, 데이터를 인터랙티브하게 시각화할 수 있는 강력한 도구입니다. 이번 예제에서는 Bokeh를 사용하여 도시 교통속도 데이터를 시각화하는 방법에 대해 알아보겠습니다.

데이터 소스

도시 교통 속도 데이터는 일반적으로 GPS 기반의 이동 통신망 데이터를 활용합니다. 이 예제에서는 테스트를 위해 가상의 데이터를 사용하겠습니다. 데이터에는 도시 내 다양한 지점에서 수집된 교통 속도 정보가 포함되어 있습니다.

데이터 로딩

가장 먼저, 필요한 라이브러리를 import하고 데이터를 로딩해야 합니다. 여기서는 pandas를 사용하여 데이터를 로딩하겠습니다.

import pandas as pd

data = pd.read_csv('traffic_data.csv')

데이터 시각화

데이터를 로딩한 후에는 Bokeh를 사용하여 데이터를 시각화할 수 있습니다. Bokeh는 다양한 시각화 요소들을 제공하며, 그 중에서도 scatter plot을 사용하여 교통 속도를 표현하겠습니다.

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

# Jupyter Notebook에서 그래프를 표시하기 위해 설정
output_notebook()

# 그래프 생성
p = figure(title='City Traffic Speed', x_axis_label='Time', y_axis_label='Speed')

# 데이터를 scatter plot으로 표현
p.scatter(data['time'], data['speed'])

# 그래프 표시
show(p)

위의 코드를 실행하면 교통 속도 데이터가 시간에 따라 scatter plot으로 표현되는 그래프가 생성됩니다.

그래프 개선

생성된 그래프는 기본적인 형태로 표시되지만, Bokeh는 다양한 기능을 지원하여 그래프를 개선할 수 있습니다.

# 그래프 개선
p.title.text_color = 'blue'
p.title.text_font_size = '18pt'
p.title.align = 'center'

p.xaxis.axis_label_text_font_size = '12pt'
p.yaxis.axis_label_text_font_size = '12pt'

p.xaxis.major_label_text_font_size = '10pt'
p.yaxis.major_label_text_font_size = '10pt'

show(p)

위의 코드를 실행하면 제목의 색상과 글꼴 크기를 변경하고, 축 레이블 및 주요 레이블의 글꼴 크기를 변경한 개선된 그래프를 확인할 수 있습니다.

결론

Bokeh를 사용하여 도시 교통속도 데이터를 시각화하는 방법에 대해 알아보았습니다. Bokeh는 강력한 기능을 제공하여 데이터 시각화를 보다 쉽고 효과적으로 할 수 있도록 도와줍니다. 다양한 Bokeh 라이브러리의 기능을 활용하여 더욱 다양하고 흥미로운 시각화를 구현해볼 수 있습니다.

참고 자료