[python] Bokeh를 활용한 국제 항공 운항 데이터 시각화

서론

데이터 시각화는 데이터로부터 의미있는 인사이트를 추출하는 데 도움을 주는 중요한 도구입니다. 이번 블로그 포스트에서는 파이썬의 Bokeh 라이브러리를 사용하여 국제 항공 운항 데이터를 시각화하는 방법을 알아봅니다. Bokeh는 고성능의 대화형 시각화 도구로, 데이터를 쉽게 시각화하고 사용자와 상호작용할 수 있도록 도와줍니다.

데이터 수집 및 전처리

분석에 사용할 국제 항공 운항 데이터를 수집해야 합니다. 이를 위해 오픈 데이터 포털이나 국제 항공 운항 정보를 제공하는 웹 사이트를 찾아볼 수 있습니다. 데이터를 CSV 파일로 다운로드한 후, pandas를 사용하여 데이터를 처리하고 필요한 필드를 추출하는 과정을 거칩니다.

import pandas as pd

# 데이터를 로드합니다.
data = pd.read_csv('flight_data.csv')

# 필요한 필드를 추출합니다.
data = data[['flight_number', 'departure', 'arrival', 'duration']]

# 데이터를 확인합니다.
print(data.head())

Bokeh를 활용한 시각화

Bokeh를 사용하여 국제 항공 운항 데이터를 시각화할 수 있습니다. 다양한 다이어그램을 생성하고 사용자와 상호작용하는 기능을 제공합니다.

막대 그래프

먼저, 출발지와 도착지의 항공편 수를 막대 그래프로 표현해 보겠습니다.

from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource

# 출발지의 항공편 수를 계산합니다.
departure_counts = data['departure'].value_counts()

# 출발지와 항공편 수를 ColumnDataSource 형식으로 변환합니다.
source = ColumnDataSource(departure_counts)

# 그래프를 생성합니다.
p = figure(x_range=departure_counts.index.tolist(), 
           plot_width=800, plot_height=400, 
           title='Departure Counts')

# 막대 그래프를 추가합니다.
p.vbar(x='index', top='departure', width=0.9, source=source)

# 그래프를 보여줍니다.
show(p)

원 그래프

다음으로, 항공편의 운항 시간을 원 그래프로 나타내어 보겠습니다.

import numpy as np

# 운항 시간 범주를 생성합니다.
bins = [0, 2, 4, np.inf]
labels = ['<2 hours', '2-4 hours', '>4 hours']

# 운항 시간을 범주로 변환합니다.
data['duration_category'] = pd.cut(data['duration'], bins=bins, labels=labels)

# 각 범주의 항공편 수를 계산합니다.
duration_counts = data['duration_category'].value_counts()

# 그래프를 생성합니다.
p = figure(width=400, height=400, 
           title='Flight Duration')

# 원 그래프를 추가합니다.
p.wedge(x=0, y=0, radius=0.4, 
        start_angle=cumsum(duration_counts/sum(duration_counts)*2*pi), 
        end_angle=cumsum(duration_counts/sum(duration_counts)*2*pi),
        legend_label=duration_counts.index.tolist())

# 그래프를 보여줍니다.
show(p)

결론

이번 포스트에서는 Bokeh를 사용하여 국제 항공 운항 데이터를 시각화하는 방법을 알아보았습니다. Bokeh는 다양한 종류의 그래프를 생성하고 사용자와 상호작용할 수 있는 기능을 제공합니다. 데이터 시각화를 통해 국제 항공 운항 데이터에 대한 인사이트를 얻을 수 있으며, 이를 통해 항공산업에 도움이 될 수 있습니다.

참고 자료