Bokeh는 데이터 시각화를 위한 강력한 Python 라이브러리입니다. 이 라이브러리를 사용하면 인터랙티브한 시각화를 구현할 수 있으며, 여러 종류의 데이터를 시각적으로 보여줄 수 있습니다. Bokeh는 이미 다양한 데이터 모델과 연결 방법을 제공하고 있지만, 때로는 사용자 고유의 데이터 모델을 만들어야 할 때도 있습니다. 이번 글에서는 Bokeh에서 커스텀 데이터 모델을 만들고 연결하는 방법에 대해 알아보겠습니다.
Bokeh 커스텀 데이터 모델 만들기
Bokeh에서는 ColumnDataSource
라는 데이터 모델을 사용하여 데이터를 관리합니다. ColumnDataSource
는 일련의 데이터를 컬럼 형태로 관리하며, 여러 개의 컬럼을 가질 수 있습니다. 이전에 만들어진 커스텀 데이터 모델을 Bokeh에 연결하려면 해당 모델을 ColumnDataSource
에 포함시켜야 합니다.
예를 들어, 사용자가 별도의 데이터 클래스를 만들어서 Bokeh에서 사용하고자 한다면 다음과 같이 할 수 있습니다:
class MyDataModel:
def __init__(self, data):
self.data = data
def get_data(self):
return self.data
# 커스텀 데이터 모델 생성
data_model = MyDataModel(data=[1, 2, 3, 4, 5])
커스텀 데이터 모델을 Bokeh에 연결하기
커스텀 데이터 모델을 Bokeh에 연결하기 위해서는 ColumnDataSource
에 해당 데이터 모델의 필요한 컬럼들을 포함시켜야 합니다. 여기서는 MyDataModel
에서 data
라는 컬럼만 사용할 것입니다.
from bokeh.models import ColumnDataSource
# 커스텀 데이터 모델을 Bokeh의 ColumnDataSource에 연결
source = ColumnDataSource(data={
'x': data_model.get_data(),
'y': [4, 2, 1, 7, 5]
})
위의 예시에서는 x
컬럼에 MyDataModel
에서 가져온 데이터를, y
컬럼에는 임의의 데이터를 설정했습니다.
Bokeh 플롯에 커스텀 데이터 모델 사용하기
이제 ColumnDataSource
에 연결된 커스텀 데이터 모델을 사용하여 Bokeh 플롯을 만들어보겠습니다.
from bokeh.plotting import figure, show
# Bokeh 플롯 생성
p = figure()
p.line(x='x', y='y', source=source)
# 플롯 보여주기
show(p)
위의 예시에서는 line
메소드를 사용하여 x
와 y
컬럼을 연결해줍니다. source
인자에는 위에서 생성한 ColumnDataSource
객체를 전달합니다.
이제 Bokeh 플롯에서는 MyDataModel
에서 가져온 데이터와 함께 임의의 데이터를 시각화할 수 있습니다.
결론
이번 글에서는 Bokeh에서 커스텀 데이터 모델을 만들고 연결하는 방법에 대해 알아보았습니다. Bokeh는 다양한 데이터 모델을 지원하며 이를 활용하여 데이터 시각화를 할 수 있습니다. 하지만 사용자가 고유의 데이터 모델을 만들어야 하는 경우에는 ColumnDataSource
를 사용하여 커스텀 데이터 모델을 Bokeh에 연결할 수 있습니다. 이를 통해 더 다양한 시각화를 구현할 수 있습니다.