Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Bokeh를 활용한 Python 플롯에서 다양한 도형 시각화 방법

Bokeh는 데이터 시각화를 돕는 오픈 소스 Python 패키지입니다. HTML과 JavaScript를 사용해 플롯을 렌더링하기 때문에 웹 기반 대시보드를 구축할 때 특히 유용합니다.

Bokeh는 데이터 소스를 JSON 파일로 변환하며, 이 파일은 JavaScript 라이브러리인 BokehJS의 입력으로 사용됩니다. BokehJS는 TypeScript로 작성되어 최신 브라우저에서 시각화를 원활하게 렌더링할 수 있습니다.

Bokeh의 주요 특징

Matplotlib나 Seaborn이 정적(static) 플롯을 생성하는 것과 달리, Bokeh는 인터랙티브(interactive) 플롯을 생성합니다. 즉, 사용자가 플롯과 상호작용하면 그에 따라 그래프가 동적으로 반응합니다.

또한 생성된 플롯은 Flask나 Django 기반 웹 애플리케이션에 임베드하여 사용할 수 있으며, Jupyter 노트북에서도 손쉽게 렌더링할 수 있습니다.

Bokeh 설치 및 의존성

Bokeh의 주요 의존성 패키지는 다음과 같습니다.

Numpy
Pillow
Jinja2
Packaging
Pyyaml
Six
Tornado
Python-dateutil

Windows 명령 프롬프트에서 Bokeh를 설치하려면 다음 명령어를 실행합니다.

pip3 install bokeh

Anaconda 환경에서는 아래 명령어를 사용합니다.

conda install bokeh

여러 도형 시각화 예제

먼저 필요한 모듈을 가져옵니다.

from bokeh.plotting import figure, output_file, show

다음은 사각형, 정사각형, 타원 등 여러 도형을 하나의 플롯에 함께 그리는 예제입니다.

my_fig = figure(plot_width = 400, plot_height = 300)
my_fig.rect(x = 11, y = 11, width = 150, height = 75, width_units = 'screen', height_units = 'screen')
my_fig.square(x = 2, y = 3, size = 80, color = 'blue')
my_fig.ellipse(x = 7, y = 6, width = 30, height = 10, fill_color = None, line_width = 2)
my_fig.oval(x = 6, y = 6, width = 2, height = 1, angle = -0.4)
show(my_fig)

코드 설명

  • 필요한 패키지를 가져와 별칭(alias)을 지정합니다.
  • figure 함수를 호출하면서 플롯의 너비와 높이를 지정합니다.
  • 'output_file' 함수를 호출하여 생성될 HTML 파일의 이름을 지정할 수 있습니다.
  • Bokeh에서 제공하는 'rect'(사각형), 'square'(정사각형), 'ellipse'(타원), 'oval'(계란형) 함수를 데이터와 함께 호출하여 각 도형을 그립니다.
  • 마지막으로 'show' 함수를 사용해 완성된 플롯을 화면에 표시합니다.

이처럼 Bokeh를 활용하면 단 몇 줄의 코드로 다양한 도형을 포함한 인터랙티브한 시각화 결과물을 쉽게 만들 수 있습니다.