Bokeh ( http://bokeh.pydata.org )는 웹사이트에서 현대적인 웹 기반 인터랙티브 플롯을 제공하는 것을 목표로 만든 파이썬 라이브러리이다.
여기에서는 "파이썬을 활용한 금융분석(Python for Finance) 제14장의 예제 코드를 기반으로 bokeh 패키지의 기능을 간단히 소개한다
In [1]:
import urllib
In [2]:
url = 'http://ichart.yahoo.com/table.csv?s=MSFT&a=0&b=1&c=2009'
data = pd.read_csv(url, parse_dates=['Date'])
Bokeh는 원래 정적인 웹사이트로 렌더링 할 html 파일을 출력하는 것을 목표로 한다. 따라서 출력을 저장할 html 파일 패스를 지정해야 한다. 만약 주피터 노트북에서 작업한다면 다음과 같이 output_notebook
명령을 실행해야 한다.
In [3]:
import bokeh.plotting as bp
In [4]:
# 주피터 노트북이 아닌 파일로 출력하는 경우
# bp.output_file("../images/msft_1.html", title="Bokeh Example (Static)")
In [5]:
# 주피터 노트북에서 실행하여 출력하는 경우
bp.output_notebook()
이제 플롯을 위한 준비 작업을 완료하였다. 우선 figure
명령으로 Figure
클래스 객체를 생성해야한다. 이를 p
라는 변수에 저장하자.
In [6]:
p = bp.figure(title='Historical Stock Quotes', # 플롯 제목
x_axis_type ='datetime', # x 축은 날짜 정보
tools = '')
다음으로 Figure
클래스의 메서드를 호출하여 실제 플롯 객체를 추가한다. 우선 라인 플롯을 그리기 위해 line
메서드을 실행한다.
In [7]:
p.line(
data['Date'], # x 좌표
data['Close'], # y 좌표
color ='#0066cc', # 선 색상
legend ='MSFT', # 범례 이름
)
Out[7]:
이제 show
명령어를 호출하여 실제 차트를 렌더링 한다.
In [8]:
bp.show(p)
Out[8]:
만약 차트에 상호작용을 위한 툴을 추가하고 싶다면 Figure
객체 생성시 tools
인수를 설정한다.
In [10]:
p = bp.figure(title='Historical Stock Quotes', # 플롯 제목
x_axis_type ='datetime', # x 축은 날짜 정보
tools = 'pan, wheel_zoom, box_zoom, reset, previewsave')
p.line(
data['Date'], # x 좌표
data['Close'], # y 좌표
color ='#0066cc', # 선 색상
legend ='MSFT', # 범례 이름
)
bp.show(p)
Out[10]: