[파이썬] bokeh 사용자 지정 스타일 및 테마 적용하기

Bokeh은 파이썬 기반의 시각화 라이브러리로, 데이터를 인터랙티브한 형태로 시각화할 수 있게 해줍니다. Bokeh의 강력한 기능 중 하나는 사용자가 쉽게 스타일 및 테마를 적용할 수 있다는 것입니다. 이를 통해 시각화 결과물을 더욱 독특하고 맞춤화된 형태로 표현할 수 있습니다.

Bokeh 테마

Bokeh에서는 사용자가 자신만의 테마를 정의하고 적용할 수 있습니다. 테마는 시각화에 적용되는 다양한 속성과 스타일을 포함하고 있으며, 화면의 배경색, 축의 색상, 폰트 스타일 등을 변경할 수 있습니다. 이는 시각화의 일관성을 유지하고, 시각적 요소들을 조율하는 데 유용합니다.

from bokeh.io import curdoc
from bokeh.themes import Theme

# 사용자 정의 테마 작성
custom_theme = Theme(json={
    "attrs": {
        "Plot": {
            "toolbar_location": None,
            "border_fill_color": "lightgray",
            "min_border_left": 80
        },
        "Grid": {
            "grid_line_color": "white",
            "grid_line_width": 1
        },
        "Title": {
            "text_color": "navy",
            "font": "helvetica",
            "text_font_size": "18pt"
        }
    }
})

# 현재 문서에 테마 적용
curdoc().theme = custom_theme

위의 예시에서는 Bokeh의 자체 테마 인터페이스를 사용하여 사용자 정의 테마를 작성하고, 현재 문서에 적용하는 방법을 보여줍니다. Theme 클래스의 json 매개변수를 사용하여 각 요소의 스타일을 지정할 수 있습니다. 이 예시에서는 플롯의 툴바 위치, 플롯의 테두리 색상, 그리드의 선 색상 및 두께, 제목의 텍스트 색상, 글꼴 스타일 및 크기 등을 변경합니다.

Bokeh 스타일

Bokeh에서는 스타일을 적용하여 시각화 결과물에 다양한 효과를 부여할 수 있습니다. 여러 가지 스타일 요소를 사용하여 그래프의 색상, 선 스타일, 마커 모양, 폰트 스타일 등을 변경할 수 있습니다.

from bokeh.plotting import figure

# 스타일을 적용한 그래프 생성
p = figure(plot_width=400, plot_height=300)
p.circle([1, 2, 3, 4, 5], [6, 7, 2, 4, 5], size=20, color="orange", alpha=0.5, line_width=2, line_color="blue")

# 그래프 요소에 스타일 적용
p.title.text_color = "green"
p.title.text_font = "helvetica"
p.title.text_font_size = "18pt"

p.xaxis.axis_label = "X축"
p.xaxis.axis_label_text_color = "gray"
p.xaxis.axis_label_text_font_style = "italic"

p.yaxis.axis_label = "Y축"
p.yaxis.axis_label_text_color = "gray"
p.yaxis.axis_label_text_font_style = "italic"

p.background_fill_color = "lightyellow"
p.border_fill_color = "lightblue"

# 그래프 출력
show(p)

위의 예시에서는 plot_widthplot_height를 사용하여 그래프의 크기를 지정하고, circle 메서드를 사용하여 데이터를 산점도로 표현합니다. size, color, alpha, line_width, line_color 등의 속성을 사용하여 점의 크기, 색상, 투명도, 선의 두께 및 색상에 대한 스타일을 지정할 수 있습니다.

p.title, p.xaxis, p.yaxis 등의 속성을 사용하여 제목, x축 및 y축 레이블에 대한 스타일을 지정할 수 있습니다. 마지막으로 그래프의 배경 색상과 테두리 색상을 변경하기 위해 background_fill_colorborder_fill_color 속성을 사용합니다.

Bokeh을 사용하여 사용자 지정 스타일 및 테마를 적용하면 시각화 결과물을 보다 개성적이고 독특하게 만들 수 있습니다. 다양한 스타일 및 테마 설정을 통해 데이터를 효과적으로 전달할 수 있으며, 시각적 요소들을 조율하여 일관된 시각화를 구현할 수 있습니다.