plotly 패키지를 이용하면 동적 그래프를 그릴 수 있다. 하지만 동적 그래프를 블로그에 그대로 복붙할 수는 없고, 그림파일로 저장하여 업로드 해야 한다는 문제점이 있다. 동적 그래프를 그대로 블로그에 업로드 하고 싶다면 plotly 클라우드에 그래프를 업로드하고 iframe 형태로 만들어 html 편집기를 통해 붙이면 된다.
먼저 plotly 웹사이트에 가입하고 로그인 해야 한다.
로그인 후에 우측 상단 아이디에 커서를 가져다 놓고, Settings를 클릭하면 아래처럼 좌측 메뉴가 나온다.
여기서 API Keys 탭에 들어가서 Regenerate key 버튼을 누르면 그래프를 ploty 클라우드에 업로드 할 때 필요한 API key를 얻을 수 있다. 그런다음 username과 API key를 아래 코드로 입력해준다.
import chart_studio
username = 'your username' # your username
api_key = 'your api key' # your api key
chart_studio.tools.set_credentials_file(username=username, api_key=api_key)
이제 plotly 그래프를 그린다.
import yfinance as yf
import plotly.express as px
df_SPY_yf = yf.Ticker('SPY').history('max', auto_adjust=True)
fig = px.line(df_SPY_yf.reset_index(), x="Date", y="Close")
fig.update_layout(title='SPY Daily Close', title_x=0.5)
png로 다운로드하면 위의 그래프처럼 정적인 이미지 파일로만 사용 가능하다.
다음으로 할 일은 plotly 클라우드에 그래프를 업로드 하는 것이다.
import chart_studio.plotly as py
py.plot(fig, filename = 'SPY_daily_return', auto_open=True)
https://plotly.com/~kist125/11/
출력 결과로 업로드된 그래프의 url을 반환하는데 이 url을 iframe 형태로 만들어주면 된다.
import chart_studio.tools as tls
tls.get_embed('https://plotly.com/~kist125/11/') #change to your url
<iframe id="igraph" scrolling="no" style="border:none;" seamless="seamless" src="https://plotly.com/~kist125/11.embed" height="525" width="100%"></iframe>
이 코드를 html 편집모드에 들어가서 붙여 넣어주면 된다.