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

Python Bokeh로 여러 개의 선 그래프 한 번에 시각화하는 방법

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

Bokeh의 작동 원리

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

Matplotlib나 Seaborn이 정적(static) 그래프를 생성하는 것과 달리, Bokeh는 인터랙티브한 그래프를 만들어냅니다. 즉, 사용자가 그래프와 상호작용하면 그래프가 그에 맞게 반응하여 변화합니다.

또한 생성된 플롯은 Flask나 Django 기반 웹 애플리케이션의 출력으로 삽입할 수 있으며, Jupyter 노트북에서도 렌더링할 수 있습니다.

Bokeh의 의존성 패키지

Numpy
Pillow
Jinja2
Packaging
Pyyaml
Six
Tornado
Python-dateutil

Bokeh 설치 방법

Windows 명령 프롬프트에서 설치하는 경우:

pip3 install bokeh

Anaconda 프롬프트에서 설치하는 경우:

conda install bokeh

여러 줄(multi_line) 시각화 예제

Bokeh의 multi_line 함수를 사용하면 여러 개의 선을 하나의 그래프에 손쉽게 그릴 수 있습니다. 아래 예제를 살펴보겠습니다.

from bokeh.plotting import figure, output_file, show
output_file("patchplot.html")
p = figure(plot_width=500, plot_height=300)

p.multi_line([[1, 2, 2], [3, 2, 5, 8]], [[2, 3, 7], [4, 8, 9, 0]],
   color=["firebrick", "cyan"], alpha=[0.9, 0.3], line_width=4)

show(p)

위 코드를 실행하면 두 개의 서로 다른 색상과 투명도를 가진 선이 포함된 'patchplot.html' 파일이 생성되고, 브라우저에서 인터랙티브한 그래프로 확인할 수 있습니다.

코드 설명

  • 필요한 패키지들을 임포트하고 별칭(alias)을 지정합니다.
  • figure 함수를 호출하면서 플롯의 너비(plot_width)와 높이(plot_height)를 설정합니다.
  • 'output_file' 함수를 호출하여 생성될 HTML 파일의 이름을 지정합니다.
  • Bokeh에서 제공하는 'multi_line' 함수를 데이터와 함께 호출하여 여러 개의 선을 정의합니다. 각 선마다 color(색상), alpha(투명도), line_width(선 굵기)를 개별적으로 지정할 수 있습니다.
  • 'show' 함수를 사용하여 완성된 플롯을 화면에 표시합니다.