Pythonコード集

【Pythonコード集】2つの縦軸のチャートをつくってみよう!

目安:この記事は3分で読めます。

 

2021年8月30日の記事で、縦軸(Y軸)が2つあるチャートを作成して、グロース株とアメリカの長期金利のトレンドを比較しました。

2つの縦軸(Y軸)で違うマーケット(銘柄)を比較する方法は、株式投資の分析でよく使われます。

そこで今回はー

ポイント

Pythonで2つの縦軸(Y軸)のチャートをつくる方法

についてお話しします。

これをマスターすれば、Pythonを使った株式分析の幅が広がります。

ぜひ、最後までご覧ください!

 

今回のゴール

今回は、Pythonを使って2つの縦軸(Y軸)のチャートを作成します。

2軸のチャートをつくることで、違うマーケット(銘柄)のトレンドを簡単に把握することができます。

グロース株と米金利の比較チャート

Pythonで作成

 

この記事の対象となる人

こんな人におすすめ

  • 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で作成

色分けと各ラベルを表示させることで、グロース株とアメリカ金利の動きが簡単に把握できるチャートが出来上がりました!

 

まとめ

最後にまとめとして、今回の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);

今回は以上となります。


注記事項

ジェイの米国株投資ブログ(以下当サイト)に掲載されている記事は、投資の助言を目的としたものではありません。当サイトに掲載されたコンテンツの正確性については、可能な限り注意を払っています。しかし、意図せず誤情報が紛れ込む可能性や情報そのものが古くなっている可能性があり、その正確性を完全に保証するものではありません。
当サイトのコンテンツを参考に投資を行い、その後発生したいかなる結果についても、当サイト並びにブログ運営者は一切責任を負いません。すべての投資行動は『自己責任の原則』のもとで行ってください

 

-Pythonコード集