目安:この記事は3分で読めます。
2021年8月30日の記事で、縦軸(Y軸)が2つあるチャートを作成して、グロース株とアメリカの長期金利のトレンドを比較しました。
2つの縦軸(Y軸)で違うマーケット(銘柄)を比較する方法は、株式投資の分析でよく使われます。
そこで今回はー
ポイント
Pythonで2つの縦軸(Y軸)のチャートをつくる方法
についてお話しします。
これをマスターすれば、Pythonを使った株式分析の幅が広がります。
ぜひ、最後までご覧ください!
今回のゴール
今回は、Pythonを使って2つの縦軸(Y軸)のチャートを作成します。
2軸のチャートをつくることで、違うマーケット(銘柄)のトレンドを簡単に把握することができます。
グロース株と米金利の比較チャート
この記事の対象となる人
こんな人におすすめ
- Pythonを学びたいと思っている人
- Pythonで株価の分析がしたい人
この記事でわかること
わかること
- 2つの縦軸(Y軸)を持つチャートのつくり方
ここからPythonコードの解説に入ります。
3段階に分けて、わかりやすく解説していきます。
最後の『まとめ』では、今回のPythonコードを一気にご紹介します。
ステップ1:ライブラリのインポート
Pythonコード
import pandas as pd import yfinance as yf import matplotlib.pyplot as plt
コードの解説
▷import pandas as pd
Python版のエクセルの『pandas』をインポート
▷import yfinance as yf
Yahoo!finance USから株価のデータを取得するためのライブラリ『yfinance』をインポート
▷import matplotlib.pyplot as plt
Pythonでチャートやグラフを作成するためのライブラリ『matplotlib』をインポート
ワンポイント・アドバイス
コードの最後に『as ○○』と書けば、その後は○○と短縮したかたちでコードを書くことができます
ステップ2:株価データの取得
必要なライブラリのインポートが終わったら、次は株価のデータを取得しましょう。
Pythonコード
#アメリカ長期金利のデータを取得 us_yield = yf.Ticker('^TNX') df_us_yield = us_yield.history(interval='1d', start='2021-01-01', end='2021-12-31', auto_adjust=True) #グロース株ETFのデータを取得 iwf = yf.Ticker('IWF') df_iwf = iwf.history(interval='1d', start='2021-01-01', end='2021-12-31', auto_adjust=True)
コードの解説
▷yf.Ticker('^TNX') or ('IWF')
『Ticker』を使うことで、yahoo!finance USのティッカーコードを取得できます。
例:^TNX:アメリカの長期金利
▷us_yield.history
▷iwf.history
yahoo!finance USから株価のデータを取得する方法は2つあります。
今回は、そのうちのひとつ『history』を使って取得します。
ポイントは、カッコの中の引数です。
historyの引数
- interval:時間軸を指定
- start:最初のデータ取得日を指定
- end:最後のデータ取得日を指定
- auto_adjust:Trueにして調整済み終値を取得
intervalで取得する株価データの時間軸を設定します。
今回は日足のデータを取得するので『1d』としました。
その他の時間軸としてはー『5d,1 mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max』があります。
startには、株価のデータを取得する最初の日を指定します。
endには、株価のデータを取得する最後の日を指定します。
endは今回『2021-12-31』としましたが、実際に取得できる最終日は、コードを実行した日になります。
直で日付を設定する場合は文字型になります。
なので、必ず『' '』や『" "』で日付をくくりましょう。
auto_adjustの『True』は、調整済みの終値を取得する時に書くコードです。
ジェイはいつも調整済みの終値を使っています。
ステップ3:チャートの作成
いよいよチャートの作成に入ります。
今回のゴールは『2つの縦軸(Y軸)のチャート』をつくることです。
注目すべきポイントは2つあります。
さっそくPythonのコードをみてみましょう!
Pythonコード
fig = plt.figure(figsize = (15,8)) #左のY軸を設定してグロース株のチャートを表示 ax1 = fig.add_subplot() ax1.plot(data['IWF'], color = 'green', lw=3, label = 'Growth_Index') ax1.set_ylabel('IWF_Price', fontsize = 20) plt.legend(loc=1,fontsize=18) plt.title('Chart', fontsize = 28) #右のY軸を設定して米金利のチャートを表示 ax2 = ax1.twinx() ax2.plot(data['US_Yield'], color = 'blue', lw=3, label = 'US_Yeild') ax2.set_ylabel('Yield_Rate', fontsize=18) plt.grid(True) plt.legend(loc=4,fontsize=18);
コードの解説
▷plt.figure(figsize = (15,8))
このコードは、チャートのサイズを設定する時の定型文と思ってください。
カッコの中は(横, 縦)の順となります。
『fig』という変数にいれます。
▷fig.add_subplot()☆
今回の記事のポイントは、このコードです。
上で設定した『fig』の後に『add_subplot』と書くと、2つの軸を持つチャートをつくることができます。
具体的には『ax1』という変数に『fig.add_subplot()』を入れます。
▷ax1.plot(data['IWF'], color = 'green', lw=3, label = 'Growth_Index')
『ax1』の後に『plot』と書くだけで、ラインチャートが描画されます。
カッコ中の引数で色やラインの太さ、ラベル(凡例)を設定することができます。
plotの引数
- color:色の設定
- lw:ラインの太さの設定
- label:ラベルの設定
▷ax1.set_ylabel('IWF_Price', fontsize = 20)
Y軸のラベルを表示したい時は『set_ylabel』と書きます。
『ax1』の後に『set_ylabel』と書くことで、引数で設定したラベル名『IWF_Price』が、左のY軸に表示されます。
▷plt.legend(loc=1,fontsize=18)
『legend』は、チャートの中にラベルを表示させる時に使うコードです。
引数の『loc』で、ラベル凡例)を表示したい場所を指定することができます。
右上に表示したい場合は『1』とします。
以下のように文字で指定することもできます。
‘best’、‘upper right’、‘upper left’、‘lower left’、‘lower right’
‘right’、‘center left’、‘center right’、‘lower center’、‘upper center’、‘center’
▷plt.title('Chart', fontsize = 28)
チャートの上にタイトルを表示したい時は『title』と書きます。
表示したいタイトル名とフォントサイズを指定するだけで、簡単にタイトルを表示させることができます。
今回はタイトル名を『Chart』、フォントサイズを『28』としました。
▷ax2 = ax1.twinx()☆
2つ目の重要なポイントが、このコードです!
最初に設定した『ax1』の後にー
重要なポイント
『twinx()』と書くことで、2つ目のY軸が設定できる
上のことを必ず覚えておきましょう!
『ax1.twinx()』を2つ目の軸となる変数『ax2』に入れることで、2つの縦軸(Y軸)を持つチャートをつくることができます。
▷plt.grid(True)
『grid』と書くことで、チャート内にグリッドラインを描画できます。
今回は『ax2』のみに設定しました。
『ax1』にも設定すると、グリッドラインが多すぎて見づらくなるからです。
▷plt.legend(loc=4,fontsize=18);
ax2でも『legend』でチャート内にラベル(凡例)を表示させます。
こうすることで、どちらがグロース株のラインで、どちらがアメリカ金利のラインかを見分けることができます。
表示する場所は『4』にしました。
この数字は『チャートの右下』を意味します。
コードを実行してみよう
上のコードを実行すると、以下のチャートが描画されます。
今回のチャート
色分けと各ラベルを表示させることで、グロース株とアメリカ金利の動きが簡単に把握できるチャートが出来上がりました!
まとめ
最後にまとめとして、今回のPythonコードを以下にまとめました。
コピペして遊んでみてください!
#ライブラリのインポート import pandas as pd import yfinance as yf import matplotlib.pyplot as plt #米金利のデータを取得 us_yield = yf.Ticker('^TNX') df_us_yield = us_yield.history(interval='1d', start='2021-01-01', end='2021-12-31', auto_adjust=True) #グロース株ETFのデータを取得 iwf = yf.Ticker('IWF') df_iwf = iwf.history(interval='1d', start='2021-01-01', end='2021-12-31', auto_adjust=True) #チャートの作成 fig = plt.figure(figsize = (15,8)) #左軸の設定 ax1 = fig.add_subplot() ax1.plot(data['IWF'], color = 'green', lw=3, label = 'Growth_Index') ax1.set_ylabel('IWF_Price', fontsize = 20) plt.legend(loc=1,fontsize=18) plt.title('Chart', fontsize = 28) #右軸(2つめの軸)の設定 ax2 = ax1.twinx() ax2.plot(data['US_Yield'], color = 'blue', lw=3, label = 'US_Yeild') ax2.set_ylabel('Yield_Rate', fontsize=18) plt.grid(True) plt.legend(loc=4,fontsize=18);
今回は以上となります。
注記事項
当サイトのコンテンツを参考に投資を行い、その後発生したいかなる結果についても、当サイト並びにブログ運営者は一切責任を負いません。すべての投資行動は『自己責任の原則』のもとで行ってください。