[python] Bokeh를 활용한 인구 밀도 지도 시각화

Bokeh는 파이썬 기반의 데이터 시각화 라이브러리로, 인터랙티브한 시각화를 제공합니다. 이번 포스트에서는 Bokeh를 사용하여 인구 밀도 지도를 시각화하는 방법을 알아보겠습니다.

1. Bokeh 설치하기

먼저, Bokeh를 설치해야 합니다. 다음 명령어를 사용하여 Bokeh를 설치할 수 있습니다.

pip install bokeh

2. 데이터 준비하기

시각화할 인구 밀도 데이터를 준비해야 합니다. 예시로, CSV 파일 형태의 데이터를 사용하겠습니다. 데이터에는 각 지역의 이름, 경도, 위도, 인구 밀도 등이 포함되어 있어야 합니다.

3. Bokeh를 이용한 인구 밀도 지도 시각화하기

import pandas as pd
from bokeh.plotting import figure, show, output_file
from bokeh.models import ColumnDataSource, Range1d, LinearColorMapper
from bokeh.tile_providers import STAMEN_TONER

# 데이터 로드
data = pd.read_csv('population_density.csv')

# 데이터 전처리
data['population_density'] = (data['population'] / data['area']) * 1000

# 타일 서비스 제공자 설정
tile_provider = STAMEN_TONER

# figure 생성
p = figure(x_range=Range1d(-180, 180), y_range=Range1d(-90, 90),
           x_axis_type="mercator", y_axis_type="mercator")

# 타일 서비스 추가
p.add_tile(tile_provider)

# 인구 밀도에 따른 컬러 매핑 설정
color_mapper = LinearColorMapper(palette='Spectral11', low=data['population_density'].min(), high=data['population_density'].max())

# 데이터를 ColumnDataSource로 변환
source = ColumnDataSource(data)

# 점으로 표시
p.circle(x='longitude', y='latitude', size='population_density', fill_color={'field': 'population_density', 'transform': color_mapper}, source=source, line_color=None)

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

# 시각화 출력
show(p)

위 예제 코드에서는 Bokeh를 사용하여 인구 밀도 데이터를 지도 위에 시각화합니다. 코드를 실행하면 “population_density_map.html” 파일이 생성되며, 해당 파일을 웹 브라우저로 열면 인터랙티브한 인구 밀도 지도가 표시됩니다.

Bokeh를 활용하면 간단히 인구 밀도 지도를 시각화할 수 있습니다. Bokeh의 다양한 기능과 설정을 활용하여 원하는 시각화를 구현해보세요.

참고 자료