【Python Coding】Plotlyを用いてグラフに「第2軸」を追加する方法
こんにちは、ちくたっく(@tictak_py)です。
今回は、pythonのplotlyで可視化したグラフに「第2軸」を追加する方法を紹介していきます。第2軸というのは、測定単位の異なるデータ同士を「別の軸」で表現したい時に使う考え方です。
例えば、年度別に「売上高」と「利益率」を表したグラフをまとめて作りたいと思った場合、
・ x軸には「年度」のデータ
・ y軸には「売上高」と「利益率」のデータ
が必要になります。
ただ、y軸の売上高は単位が「金額」であるのに対して、利益率は単位が「百分率(%)」のため、同一の尺度で表すことが出来ません。
このように異なる単位のデータを同じグラフ上で表現したい時に使える方法が「第2軸」というものです。
今回はこれを「plotly」で実現する方法を解説していきます。
【こんな人に読んで欲しい記事です】
● pythonのplotlyで「第2軸」を追加出来るようになりたい方
● これから「plotly」を用いた可視化をしていきたいと考えている方
plotlyの基本的な使い方は、以下の記事で紹介しているので参考にしてみてください。
必要ライブラリのインポート
それではまず最初に、必要なライブラリをインポートしていきます。
このあと、データフレームを用いて簡易データを作成するので、pandasもインポートしておきます。
簡易データの作成
ライブラリをインポートしたので、グラフ用の簡易データを作成していきます。
内容は何でもOKですが、冒頭で紹介したような「年度」「売上高」「利益率」のデータを持ったデータフレームを作りたいと思います。
変数dfは、上記のような内容になっていることを確認しておいてください。
数値自体に特に意味はありませんが、一応以下のような内容になっています。
・ 売上高(sales) ・・・ 右肩上がりに伸びている
・ 利益率(rate) ・・・ 2018年度まで堅調だが、その後減少→上昇
これを踏まえた上で、①第2軸を設定しない場合と②第2軸を設定した場合を見ていきましょう。
plotlyを用いたグラフ|第2軸を設定しない場合
「第2軸」を設定しないでグラフ化した場合のコードが以下となります。
グラフにすると、以下のようになります。
売上と利益率が同じ単位として認識されているので、利益率(赤色の折れ線)部分がつぶれてしまっているのがわかるかと思います。
plotlyを用いたグラフ|第2軸を設定した場合
第2軸を設定しない場合の問題点を踏まえた上で、第2軸を設定する方法を見ていきます。
ポイントは、「specs」に「secondary_y」を追加し、第2軸としたいデータに追記する点です。
言葉だけだとわかりにくいので、実際にコードをみて追記部分を確認してください。
「第2軸」を設定した上でグラフ化した場合のコードが以下となります(赤線部分がポイント) 。
上記赤線部分のコードを追記することで、「第2軸」の設定を反映することが出来ます。
結果をグラフで見てみましょう。
利益率(赤色の折れ線)が見やすく推移していますね。
このように可視化することで、データを適切に読み取ることが出来るので、是非「第2軸」を使いこなせるようにしてみてください。
では今回はこのへんで。