bokeh
이쁘고 세련된 파이썬 시각화를
이제 bokeh 로 해보자!
코딩을 하다보면 눈으로 결과를 확인해야할 경우가 종종 생긴다. 특히 보고서나 논문을 작성할때 실험 결과를 그래프로 이쁘게 뽑아내야 한다. 뿐만아니라 실시간으로 처리해야하는 어떤데이터를 일목요연하게 확인해야할 때 데이터 시각화는 필수적이다. 누군가에게 보여주기 위해 또는 개인적으로 편리함을 위해 시각화는 매우 중요하다.
bokeh ??
bokeh 는 이러한 시각화를 도와주는 파이썬 라이브러리다. 파이썬을 사용하는 많은 사람들이 matplotlib
를 알고 있을 것이다. 거의 모든 분야에서 시각화 예제는 이 matplotlib
로 구현되어있기 때문이다. matlab
과 비슷하고, 편리하기도 하다. 하지만 단점으로는 반응형으로 만들기 어렵다는것과 무엇보다도 그닥 이쁘지 않다는 것이다. 나는 더 비주얼적으로 임팩트가 있는 툴을 찾다가 bokeh 를 찾게 되었다. 우선 시선을 사로잡는 세련된 디자인과, 다양한 기능이 있는 반응형이라는 것이 마음에 들었다. 무엇보다 jupyter
와 완벽히 호환된다는 것이 가장 매력적이다.
특징
특징으로는
-
반응형
-
웹 기반
-
다양한 툴박스
-
다양한 종류의 차트
-
스트림 데이터 처리
등이 있다.
기본적으로 렌더링 데이터를 html
로 만들어 브라우저에서 볼 수 있지만, jupyter
에서 바로 확인하고 만질 수도 있다.
추가적으로 javascript 가 친숙한 개발자라면 간단하게 자신의 홈페이지에 embedding 할 수 있다.
설치
간단하게 pip 로 설치가 가능하다.pip install bokeh
터미널에 위의 명령어를 치고 import 하면 된다.
간단 사용법
나는 jupyter lab
환경에서 작성하지만 주피터 노트북은 물론이고, 그 어떤 환경에서든 import 만 하면 사용할 수 있다.
하지만 코드를 작성하는 곳에서 바로 결과물을 볼 수 있는 편리함을 느끼려면 주피터노트북이나 주피터랩 환경에서 사용하면 된다.
우선 기본적인 예시는 다음과 같다.
from bokeh.plotting import figure, output_file, show
# 데이터 준비
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]
# HTML 파일을 따로 생성
# output_notebook() - notebook 에서 바로 확인할 때
output_file("lines.html")
# figure 만들기
p = figure(title="simple line example", x_axis_label='x', y_axis_label='y')
# figure 에 그릴 그래프 그리기
p.line(x, y, legend="Temp.", line_width=2)
# 새 브라우저 탭에 출력!
show(p)
위 코드를 실행하면 HTML 파일이 만들어지고 브라우저 탭이 생기며 그래프를 볼 수 있다. 물론, jupyterlab 은 html 파일을 볼 수 있는 기능을 지원하므로 jupyterlab 에서 탭을 만들어 그래프를 확인할 수 있다.
왼쪽을 보면 위 예제에서 지정한 이름의 html 파일이 만들어진 것을 볼 수 있다.
notebook 에서 바로 보고 싶다면
맨 위에 from bokeh.plotting import output_notebook
으로 모듈을 import 하고,
위의 코드에서 output_file("lines.html")
대신 output_notebook()
를 입력하면 된다.show(p)
명령으로 jupyter 에 렌더링이 된다.
embed 하기
bokeh 는 HTML 파일로 꼭 만들지 않아도 자신만의 홈페이지에 embed 할 수 있다. js 스크립트 형태로 그래프를 출력할 수 있기 때문이다. 자신의 홈페이지에 갖다 붙이기만 하면 자신의 사이트를 시각적으로 띄게 만들 수 있다.
from bokeh.plotting import figure
from bokeh.embed import components
plot = figure()
plot.circle([1,2], [3,4])
script, div = components(plot)
print(script,div)
script
변수와 div
변수를 홈페이지에 복붙하면 바로 나타나게 될 것이다.
아직 해보진 않았지만 곧 해보면 결과물도 함께 올려보겠다.
[업데이트] embed 예시
2020/03/08 - [기타 저장소/유용한 tool] - bokeh 그래프 티스토리에 embedding 하기!
예시
bokeh 로 그릴 수 있는 그래프의 예시를 준비해보았다.
나는 주식에 대한 관심이 많아서 캔들차트, 이동평균선을 비롯한 여러가지 지표를 직접 그려보았다. 주식데이터는 따로 데이터를 크롤링했다. 이 그래프는 jupyter 에서 구동한 것을 움짤로 만든것이다.
이외에도
등의 다양한 반응형 그래프를 만들 수 있다. 위 3개의 자료는 예제로 만들어진 그래프를 웹에서 직접 만져본것이다.
아주 만족할만한 수준의 자료로 활용하기에 좋다.
더 많은 기능
사실 bokeh 는 더욱 강력한 기능이 있다. bokeh 를 서버처럼 열어놓고 실시간 데이터 처리를 할 수도 있다. 그런데 이 기능은 강력하지만 쓰기가 좀 까다로운것 같다.
어쨌든, 웹 기반으로 만들어져서 그런지, 확장성이 뛰어나고 호환성이 매우 좋다.
효과적인 시각화를 위해 bokeh 를 쓰자
요즘은 반응형이 대세다. 정지되어있는 것보다 움직이는 것이 매력적이고 어디서든 사용될 수 있는 것이 환영받는다. 이쁘고 세련된 툴을 잘 다루는 것도 경쟁력이 될 수 있다. 더 퀄리티있는 보고서를 만들수도, 자신의 홈페이지를 매력있게 만들 수도 있다.
이제 bokeh 를 적극적으로 사용해보자!
>> bokeh 홈페이지
- 자료출처 : bokeh 홈페이지
'기타 저장소 > 유용한 tool' 카테고리의 다른 글
윈도우에서 리눅스 사용하기 - WSL (0) | 2020.03.03 |
---|---|
움짤, 짤 만드는 프로그램 - GifCam (0) | 2020.02.29 |
파이썬 자동화 툴 - pyautogui 사용하기 (3) | 2020.02.27 |
파이썬 완전 자동화(프로그램 자동화)! - pywinauto 사용하기 (5) | 2020.02.24 |
차세대 개발환경, jupyter lab 을 사용하자 (2) | 2020.02.19 |
댓글