【Python】Plotlyでグラフを切り替える方法 #ボタン実装

Plotly

プラグラミング言語「PYTHON」を使ってみよう!!

業務自動化・効率化の実例を踏まえ、解説できればと思っています。対象は、プログラムを学び始めた初心者向けとなります。

今回の内容

  • Pandasでcsvファイルを読み込み東証時価総額の推移グラフを作成
  • 東証1部と東証2部をひとつのグラフに表示して、それぞれを切り替え可能なボタンを実装



使用するのはPlotly

使用するライブラリは、見た目のよいイマドキのグラフが作成できるPlotly。エクセルでは作れない高度なグラフも作成できるおすすめのライブラリです。

ここではPlotlyがインストールされているのを前提として書き進めていきます。

サンプルコード

import plotly.graph_objects as go
import plotly
import pandas as pd

df = pd.read_csv("jika-2.csv")

fig = go.Figure()

fig.add_trace(go.Scatter(x=list(df.index),y=list(df.sec1),name="東証1部",line=dict(color="#33CFA5")))

fig.add_trace(go.Scatter(x=list(df.index),y=list(df.sec2),name="東証2部",line=dict(color="#F06A6A")))

fig.update_layout(updatemenus=[
        dict(type="buttons",direction="right",active=0,x=0.57,y=1.2,buttons=list([
                dict(label="東証1部&2部",
                     method="update",
                     args=[{"visible": [True, True]},
                           {"title": "東証 時価総額"}]),
                dict(label="東証1部",
                     method="update",
                     args=[{"visible": [True, False]},
                           {"title": "東証1部 時価総額"}]),
                dict(label="東証2部",
                     method="update",
                     args=[{"visible": [False, True]},
                           {"title": "東証2部 時価総額"}]),]),)])

fig.update_layout(title_text="東証 時価総額",xaxis_domain=[0.05, 1.0])

fig.show()
plotly.offline.plot(fig,auto_open=False,filename='jika-202102.html')

↑2021.07 改行を修正しました。

コメント

ちょうどPlotlyの公式サイトにAppleの株価の高値安値グラフが記載されていたので、それを参考にして作ってみました。

X軸が日付でなくindexになっているのが気になりますが、ボタンで切り替え可能がグラフを作ることができました。

元データはこちらです。

一部しか見えていませんが、1961年から2021年まで毎月末の株価が記載されています。

出力


東証1部と2部両方を選択した場合。(これは画像なのでボタンを押しても動きません。実際はグラフ上のボタンで切り替えが可能です。)


東証1部のみ


東証2部のみ


↑Plotlyを使うならこれ!!Plotly&Dashが学べます!


↑データの前処理はPandasで。



タイトルとURLをコピーしました