目安:この記事は4分で読めます。
ここでは、PythonとYahoo!finace USのデータを使って、以下のような株価のローソク足チャートをつくってみます。
今回のゴール
今回は、ダウ平均のチャートをPythonで作成します。
Pythonチャート
しかも、カーソルを合わせれば価格データが自動的に表示されたり、画面をクーロズアップしたりロングショットにしたりできるー
今回のポイント
動的なチャート
をつくります。
そして最後のまとめでは、今回ご紹介するPythonコードを一気にご紹介します。
ぜひ最後までご覧ください!
この記事の対象となる人
こんな人におすすめ
- Pythonでチャートを作成したい人
- Pythonで株価の分析がしたい人
- Pythonを学びたいと思っている人
この記事でわかること
わかること
- Pythonを使えば、簡単に株価のローソク足チャートがつくれます
- Pythonを使えば、簡単に動的なチャートがつくれます
- Pythonの効率的な学習方法がわかります
▼ Udemyおすすめの講座 ▼
・Pythonの基礎から応用まで一気に学ぶならこのコース おすすめ度
▶現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
・データサイエンスを学ぶならこの2コース 2コースのおすすめ度
▶【世界で37万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜
▶【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門
・Python、ファイナンス、英語を一気に学ぶ ”欲張りコース” おすすめ度
▶Python for Finance: Investment Fundamentals & Data Analytics
※このコースには日本語の字幕がついています。
Python、ファイナンスそして英語の力を同時に上げるコースとしては、Udemy最強のコースです。
ジェイもこのコースで学び、今も復習で使っているコースです。
Pythonコード
ステップ1:ライブラリのインポート
Pythonコード
import pandas as pd import yfinance as yf import datetime import plotly.graph_objs as go
コードの解説
▷import pandas as pd
Python版のエクセルの『pandas』をインポート
▷import yfinance as yf
Yahoo!finance USから株価のデータを取得するためのライブラリ『yfinance』をインポート
▷import datetime
日付や日時を設定するライブラリ『datetime』をインポート
▷import plotly.graph_objs as go ☆
このコードが、今回の記事の重要ポイントです。
Plotly
可視化ライブラリの『Plotly』を使えば、動的なチャートがつくれる
Pythonには『matplotlib』や『seaborn』といった、データを可視化するためのライブラリがあります。
その中でも今回使う『Plotly』は、動的なチャートを作る時によく使われる可視化ライブラリです。
基本的な書き方はー
書き方
plotly.graph_objs
となります。
今回は、最後に『as go』を付けて、『go』として簡単に呼び出せるようにしました。
ステップ2:株価データの取得
さて、ライブラリのインポートが終わったら、次は株価データの取得です。
今回は、今年に入ってから上昇トレンドにある『ダウ平均』の株価を取得します。
ティッカーコードは『^DJI』です。
Pythonコード
df = yf.download(tickers='^DJI', start='2021-01-01', end=datetime.date.today() , auto_adjust=True, interval='1d')
コードの解説
▷yf.download
上のように書くことで、価格データを取得することができます。
ポイントはカッコの引数です。
yfinanceの引数
- tickers:ティッカーコードを指定
- start:最初のデータ取得日を指定
- end:最後のデータ取得日を指定
- auto_adjust:Trueにすると調整済み終値を取得
- interval:時間軸を指定
tickersには、Yahoo!finance USのティッカーコードを設定します。
例:アップルならAAPL、アマゾンならAMZN、ネットフリックスならNFLX
startやendは、日付で直接指定してもOKです。
その場合は文字型になるので、必ず『' '』や『" "』で日付をくくりましょう。
また、今回のように『datetime』関数で指定してもOKです。
auto_adjustは、調整済みの終値を取得する場合に使用します。
『True』にすると取得できます。
intervalは、データの時間軸を設定します。
今回は日足のデータを取得するので『1d』としました。
その他の時間軸としてはー『5d,1 mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max』があります。
ステップ3:チャートの作成
さて、いよいよチャートの作成に入ります。
冒頭でも言いましたが、今回は可視化ライブラリ『Plotly』を使います。
Pythonコード
fig = go.Figure(go.Candlestick(x=df.index, open = df['Open'], high = df['High'], low = df['Low'], close = df['Close']), layout_title_text='Dow Chart') fig.update_layout(width=800, height=700) fig.update(layout_xaxis_rangeslider_visible = True) fig.show()
コードの解説
▷go.Figure(go.Candlestick)
まずは、上のようにコードを書いてチャートの土台を設定します。
『Candlestick』が『ローソク足』となります。
設定したチャートの土台を変数『fig』に入れます。
ポイントは、カッコの中の引数です。
Candlestickの引数
- x:インデックス(x軸)を設定
- open:始値を設定
- high:高値を設定
- low:安値を設定
- close:終値を設定
- layout_title_text:チャートのタイトルを設定
・x軸の設定にご注意!
上の引数の中で一番つまずきやすいのが、最初の『x』かもしれません。
今回のように日付のデータをインデックスとして設定している場合は、『x=df.index』とします。
こうすることで、価格データを入れた変数『df』のうち、『index(日付のデータ)』だけをx軸に設定して、という意味になるからです。
『open, high, low, close』はいわゆる『四本値』といわれ、ローソク足を構成する基本的な部分です。
価格データを入れた変数『df』から、該当する箇所を[ '設定したい項目のカラム名' ]というかたちで設定するだけです。
一番最後の『layout_title_text』は、チャートのタイトルを設定するコードとなります。
▷fig.update_layout(width=800, height=700)
チャートのサイズを設定する時は、『update_layout』を使います。
チャートデータを入れた変数『fig』に『update_layout』をくっつけます。
チャートのサイズ
- width:チャートの横幅を設定
- height:チャートの縦幅を設定
▷fig.update(layout_xaxis_rangeslider_visible = True)
価格チャートの下にある『レンジスライダー』を表示するコードです。
レンジスライダー
update(layout_xaxis_rangeslider_visible)は公式みたいなものです。
書いていくうちに覚えます。
レンジスライダーの設定
- True:レンジスライダーの表示
- False:レンジスライダーの非表示
▷fig.show()
最後に『show」関数を書くことで、チャートが描画されます。
結果
レンジスライダー
ちなみにレンジスライダーを動かすと、チャートのクローズアップ / ロングショットができます。
Pythonは挑戦する価値あり!
このようにPythonを使えば、簡単に動的なチャートが作れます。
しかも基本的なコードだけで。
しかし、シンプルなコードを見ただけでも『プログラミングって難しそう...』と感じてしまう初心者の方を多く見かけます。
ジェイも最初はそうでした。
しかし、プログラミングは『習うより慣れろ』です。
今回の記事を読んで『よし!自分もPythonに挑戦してみよう!』と思った方は、以下のリンク先をご覧ください。
ジェイが考える『Pythonを効率良く学習する方法』について解説しています。
▼ Pythonを効率的に学ぶ方法を知りたいなら以下をクリック ▼
Pythonを学ぼう
この記事を読んでくださったのも何かの縁です。
ぜひ、あなたもPythonに挑戦してみてください!!
まとめ
今回は、Plotlyの基本的なコードのみでダウ平均の株価チャートを作成しました。
基本的なコードでここまでできるPlotlyです。
色々学んでいけば、あなただけのオリジナルチャートを作ることだって可能です!
最後に今回のコード一覧をご紹介します。
コピペして遊んでみてください!
今回のPythonコード一覧
#ライブラリのインポート import pandas as pd import yfinance as yf import datetime import plotly.graph_objs as go #ダウ平均のデータを取得 df = yf.download(tickers='^DJI', start='2021-01-01', end=datetime.date.today() , auto_adjust=True, interval='1d') #ローソク足チャートを作成 fig = go.Figure(go.Candlestick(x=df.index, open = df['Open'], high = df['High'], low = df['Low'], close = df['Close']), layout_title_text='Dow Chart') #チャートのサイズを設定 fig.update_layout(width=800, height=700) #レンジスライダーを表示 fig.update(layout_xaxis_rangeslider_visible = True) #ローソク足を描画 fig.show()
今回は以上です!
注記事項
当サイトのコンテンツを参考に投資を行い、その後発生したいかなる結果についても、当サイト並びにブログ運営者は一切責任を負いません。すべての投資行動は『自己責任の原則』のもとで行ってください。