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

Bokeh 라이브러리로 Python에서 쌍축(Twin Axis) 그래프 시각화하는 방법

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

Bokeh의 특징

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

또한 Bokeh로 만든 그래프는 Flask나 Django 기반 웹 애플리케이션의 출력 결과로 손쉽게 삽입할 수 있으며, Jupyter 노트북에서도 렌더링할 수 있습니다.

Bokeh 설치 방법

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

pip3 install bokeh

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

conda install bokeh

예제 코드

아래 예제는 서로 다른 두 개의 y축을 가진 쌍축(twin axis) 그래프를 Bokeh로 그리는 방법을 보여줍니다.

from numpy import pi, arange, sin, linspace
x = arange(-2.5*pi, 2.5*pi, 0.15)
y = sin(x)
y2 = linspace(0, 176, len(y))
from bokeh.plotting import output_file, figure, show
from bokeh.models import LinearAxis, Range1d
my_fig = figure(title='Twin Axis plot', plot_width=300, plot_height=300, y_range=(-0.7, 0.7))
my_fig.line(x, y, color="blue")
my_fig.extra_y_ranges = {"y2": Range1d(start=0, end=100)}
my_fig.add_layout(LinearAxis(y_range_name="y2"), 'right')
my_fig.line(x, y2, color="cyan", y_range_name="y2")
show(my_fig)

실행 결과

Bokeh 라이브러리로 Python에서 쌍축(Twin Axis) 그래프 시각화하는 방법

코드 설명

  • 필요한 패키지들을 임포트하고 별칭(alias)을 지정합니다.

  • NumPy를 사용하여 x, y 데이터를 생성합니다. 여기서 y는 사인 함수 값, y2는 0부터 176까지의 선형 범위 값입니다.

  • figure 함수를 호출하면서 그래프의 제목, 너비, 높이, 첫 번째 y축의 범위를 지정합니다.

  • line 함수를 호출하여 첫 번째 데이터(파란색 선)를 그립니다.

  • extra_y_ranges 속성에 Range1d 객체를 설정하여 두 번째 y축의 범위(0~100)를 정의합니다.

  • add_layout 함수와 LinearAxis를 사용해 오른쪽에 추가 y축을 배치합니다.

  • y_range_name 매개변수에 "y2"를 지정하여 두 번째 선(청록색)이 추가된 y축에 대응되도록 합니다.

  • 마지막으로 show 함수를 호출하여 그래프를 화면에 표시합니다.