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

Python Bokeh으로 특정 각도로 정렬된 임의의 직사각형 그리는 방법

Bokeh란 무엇인가?

Bokeh는 Python 기반의 데이터 시각화 라이브러리로, 오픈소스 프로젝트입니다. Bokeh는 HTML과 JavaScript를 사용해 플롯을 렌더링하기 때문에 웹 기반 대시보드를 구축할 때 특히 유용합니다.

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

Bokeh의 특징

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

임의의 직사각형 그리기

Bokeh에서는 중심점(x, y 좌표), 너비(width), 높이(height), 그리고 회전 각도(angle)를 지정하여 원하는 위치와 방향의 직사각형을 자유롭게 그릴 수 있습니다. 이 작업은 'rect' 함수를 통해 수행됩니다.

예제 코드

from math import pi

from bokeh.plotting import figure, output_file, show
output_file('rectanglesRandom.html')

p = figure(plot_width=400, plot_height=400)
p.rect(x=[1, 3, 5, 7], y=[1, 3, 5, 7], width=0.2, height=50, color="#CAB2D6",
    angle=pi/3, height_units="screen")

show(p)

실행 결과

위 코드를 실행하면 여러 개의 직사각형이 동일한 각도(pi/3, 약 60도)로 기울어진 상태로 표시된 인터랙티브 플롯이 'rectanglesRandom.html' 파일로 생성됩니다.

코드 설명

  • 필요한 패키지들을 가져와(import) 별칭을 지정합니다.
  • 'figure' 함수를 호출하면서 플롯의 너비와 높이를 설정합니다.
  • 'output_file' 함수를 호출하여 생성될 HTML 파일의 이름을 지정합니다.
  • Bokeh의 'rect' 함수를 호출하고, x/y 좌표, 너비, 높이, 색상, 회전 각도 등의 데이터를 전달합니다.
  • 'show' 함수를 사용하여 최종 플롯을 화면에 표시합니다.