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

Python備忘録。内容は初心者向けです。

今回の内容

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



使用するのはPlotly

使用するライブラリは、見た目のよいイマドキのグラフが作成できるPlotlyです。

サンプルコード


import plotly.graph_objects as go
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の公式サイトにAppleの株価の高値安値グラフが記載されていたので、それを参考に作ってみました。

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

元データはこちら。

1961年から2021年まで毎月末の株価をプロットしています。

出力


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


東証1部のみ


東証2部のみ

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

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