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

파이썬 Bokeh 라이브러리로 누적 막대 그래프 쉽게 만드는 방법

Bokeh란 무엇인가?

Bokeh는 파이썬에서 데이터 시각화를 돕는 대표적인 오픈소스 패키지입니다. Bokeh의 가장 큰 특징은 HTML과 JavaScript를 이용해 그래프를 렌더링한다는 점으로, 덕분에 웹 기반 대시보드를 구현할 때 특히 유용합니다.

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

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

또한 생성된 그래프는 Flask나 Django 기반 웹 애플리케이션의 출력 결과로 삽입할 수 있으며, Jupyter 노트북에서도 바로 렌더링하여 확인할 수 있습니다.

Bokeh 설치 방법

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

pip3 install bokeh

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

conda install bokeh

누적 막대 그래프 생성하기

Bokeh에서는 'vbar_stack' 또는 'hbar_stack' 함수를 사용하여 누적 막대 그래프(stacked bar chart)를 손쉽게 그릴 수 있습니다. 'vbar_stack'은 세로형, 'hbar_stack'은 가로형 누적 막대를 생성합니다.

예제 코드

from bokeh.plotting import figure, output_file, show
labs = ['label_1', 'label_2', 'label_3']
vals = ['val_1','val_2','val_3']
my_data = {'labs':labs,
   'val_1':[2,5,11],
   'val_2':[34,23,1],
   'val_3':[25, 34, 23]
}
cols = ['red','cyan','navy']
fig = figure(x_range = labs, plot_width = 300, plot_height = 300)
fig.vbar_stack(vals, x = 'labs', source = my_data, color = cols,width = 0.5)
show(fig)

실행 결과

파이썬 Bokeh 라이브러리로 누적 막대 그래프 쉽게 만드는 방법

코드 설명

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

  • 그래프의 너비와 높이를 지정하여 figure 함수를 호출합니다.

  • 데이터는 리스트 형태로 정의됩니다.

  • 'output_file' 함수를 호출하여 생성될 HTML 파일의 이름을 지정할 수 있습니다.

  • Bokeh에 내장된 'vbar_stack' 함수에 데이터를 전달하여 호출합니다.

  • 'show' 함수를 사용하여 완성된 그래프를 화면에 표시합니다.

이처럼 Bokeh를 활용하면 몇 줄의 코드만으로도 웹 환경에서 동작하는 인터랙티브 누적 막대 그래프를 간편하게 구현할 수 있습니다.