Pythonコード集

Pythonなら"爆速" でチャートやグラフをつくれる:解説編

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

 

前回は、”Plotly” を使ってナスダック100のローソク足チャートを作成しました。

前回の記事
Pythonなら"爆速" でチャートやグラフをつくれる:ローソク足編

続きを見る

その際、コードの一覧を紹介しました。

今回は、そのコードについて詳しく解説していきます。

 

今回のテーマ

 "爆速" で作ったローソク足のPythonコードについての解説


▼ Pythonを効率的に学ぶなら ▼

Pythonを学ぼう

 

この記事の対象となる人

こんな人におすすめ

  • Pythonに興味がある人
  • Pythonを学びたいと思っている人
  • Pythonを使って株価の分析をしたい人

 

結論からいいます

結論

  • ”Plotly” を使えば "爆速" でローソク足チャートが作れる

 

前回の復習

まずは、前回の復習です。

前回作ったローソク足チャート

下のチャートをクリック(タップ)してみてください。

ナスダック100のチャート

このように”Plotly” を使えば、”動的”なチャートが”爆速”で作れます。

ここまでが前回の内容でした。

 

ここからが今回の本題です。

上のチャートを描画する時に書いたコードについて解説していきます。

Pythonコードの説明

まずは、全体のコードから。

コードの全体像

#Plotlyライブラリのインポート
import plotly.graph_objs as go 

#Pandasのインポート
import pandas as pd
import pandas_datareader as web

#日付や時間を設定するdatetimeをインポート
import datetime


## nasdaqという変数にナスダック100のローソク足チャートのデータを入れるコード
nasdaq = web.DataReader(name='^NDX', 
                        data_source='yahoo', 
                        start='2021-01-01', 
                        end=datetime.date.today())


#Plotlyチャートを描画するコード
fig = go.Figure(data=[go.Candlestick(
                        x=nasdaq.index,
                        open=nasdaq['Open'],
                        high=nasdaq['High'],
                        low=nasdaq['Low'],
                        close=nasdaq['Adj Close'],
                        increasing_line_color= 'darkgreen',
                        decreasing_line_color= 'red')])

fig.update_layout(autosize=True,width=1000,height=800)

# Plotlyチャートを表示するコード
fig

 

たった3つのことをやっているだけ

初心者の方がプログラミングのコードを見ると...

Aさん
全然わかんない...

という感想を抱くと思います。

しかし、上のコードが実行していることは、以下3つのことだけです。


  • step.1

    最初に必要なライブラリをインポート


  • step.2

    次に必要な価格データを取得


  • step.3

    最後にチャートを作成し表示する


たった3つのことをコード化するだけで、”爆速”でローソク足のチャートが作成できるというわけです。

 

コードの解説

ここからは、ひとつひとつのコードが何を意味するのか?

この点について解説していきます。

なお、コードが書いてある画面は左右にスライドできます。

 

①ライブラリのインポート

プログラミングの目的は様々でも、まず最初にやるべきは必要なライブラリのインポートです。

import plotly.graph_objs as go

import pandas as pd
import pandas_datareader as web

import datetime

 

今回のライブラリ

plotly.graph_objs

1行目:『plotly.graph_objs』がPlotlyのライブラリです。
この書き方は、Plotlyの定型文みたいなものです。
graph_objsのところはgraph_objectsと書くこともできます。この辺は好みですね。

pandas

3行目と4行目:これまでこのブログで何度も紹介した『Pandas』のライブラリです。Pandasは ”Pythonのエクセル版” と思ってください。
そのPandasの中にあるのが『pandas_datareader 』です。これを使ってYahoo!finance USから価格データを取得します。

datetime

6行目:『datetime』は、日付や時間を設定するライブラリです。
今回は、コードを書いた日を最終日にする目的でインポートしました。

 

②価格データの取得

必要なライブラリのインポートが終わったら、次はYahoo!finance USから、ナスダック100の価格データを取得します。

# nasdaqという変数に価格データを入力するコード
nasdaq = web.DataReader(name='^NDX', 
                        data_source='yahoo', 
                        start='2021-01-01', 
                        end=datetime.date.today())

価格データの変数

まずは、価格データを入れる ”箱” となる変数を作ります。
今回は『nasdaq』としました。
変数の名前は自由に決めることができます。

DataReader

Pandasを使ってYahoo!finance USから価格データを取得する時は、『DataReader』を使います。
他にもデータを取得するためのライブラリはありますが、DataReaderが一番使いやすいでしょう。

そして、『DataReader』にはいくつか任意で設定できる引数があります。

DataReaderの引数

・name:ここに取得したい市場や銘柄のティッカーコードを入力します。
ナスダック100の場合は『^NDX』です。

data_source:ここに価格を取得したいデータソース名を入力します。
大体は ”Yahoo!finance US” から取得します。なので『yahoo』と入力します。

・start:ここではデータを取得したい”最初の日”を設定します。

・end:ここではデータを取得したい”最後の日”を設定します。
今回は、コードを書いた日を最終日とするため『datetime』で設定しました。
ちなみに "datetime.date.today( )" とすると、コードを書いている日の日付が設定されます。

 

③価格データの確認

価格データに限らず、何らかのデータを取得した際は、必ず最初(頭)と最後(お尻)のデータをチェックします。

nasdaq

・価格データ

ナスダック100の価格データ

変数名『nasdaq』と入力するだけで、Yahoo!finance USから、価格のデータを取得出来ていることが確認できました。

 

④チャートの描画

さて、いよいよチャートの描画(びょうが)です。

ここでPlotlyの真価が発揮されます!

# figという変数にナスダック100のローソク足チャートのデータを入力するコード
fig = go.Figure(data=[go.Candlestick(
                        x=nasdaq.index,
                        open=nasdaq['Open'],
                        high=nasdaq['High'],
                        low=nasdaq['Low'],
                        close=nasdaq['Adj Close'],
                        increasing_line_color= 'darkgreen',
                        decreasing_line_color= 'red')])

# チャートのレイアウトを設定するコード
fig.update_layout(autosize=True,width=1000,height=800)

# チャートを表示するコード
fig

fig

2行目:『fig 』は、Plotlyチャートのデータを入れるための変数(箱)です。
変数の名前はお好みで設定できます。

go.Figure

2行目:『go.Figure』は、空のPlotlyチャートを設定するコードです。
ライブラリをインポートする際に”import plotly.graph_objs as go”としました。
最後の”as go”は、"Plotlyのライブラリをgoとしてインポートして" という意味です。

data

2行目:『data』と書くことで、このdataの中にチャートのタイプや価格データを入力することを宣言します。

go.Candlestick

2行目:『go.Candlestick』と書くことで、これからチャートのタイプがローソク足であること、ローソク足に必要な『四本値』を入力することを定義します。
ちなみに『go.Candlestick』は[ ]でくくるので、リスト形式となります。

go.Candlestick

3行目以降(go.Candlestickの中身):

・x:横軸となりますので、ここには時系列のデータを入れます。
”変数名.index”とすれば、時系列データが簡単に認識されます。
なぜならindexに時系列のデータが入っているからです。

・open / high / low / close:
ここでローソク足の『四本値』である『始値/ 高値/ 安値/ 終値』の4つのデータを設定します。例えばopen(始値)ならば ”変数名['Open']” とします。closeなら ”変数名['Adj Close']” とします。

OpenやAdj CloseはYahoo!finance USの形式です。スペルミスを防ぐために、Pandasで取得したデータフレームからコピペしましょう。

・increasing_line_color:ここで”上昇”のローソク足チャートの色を設定します。

・decreasing_line_color:ここで”下落”のローソク足チャートの色を設定します。

fig.update_layout

12行目:『fig.update_layout』でチャートの大きさが設定できます。
”width”で横のサイズ、”height”で縦のサイズが自由に設定できます。

fig.update_layout

15行目:『fig』はチャートを表示(描画)するコードです。

あっという間にナスダック100ののローソク足チャートが出来上がりました!

・Plotlyチャート

ナスダック100のチャート

 

Pythonを使えば簡単にチャートが作成できる

このブログで何度も述べてきましたが、Pythonを使えば簡単にチャートが作成できます。

もちろん、コードを組む時はある程度の時間が必要です。

しかし一度コードを組んでしまえば、あとはそのコードを実行するだけです。

コードを実行すれば、一瞬であなたの作りたいチャートが描画されます。

この記事をきっかけにPythonに興味を持たれた方は、以下の『Pythonを学びたい方へ』をご覧ください。

 

Pythonを学びたい方へ

今やPythonは、マーケットの分析に限らず、あらゆる分野で使われているプログラミング言語です。

Pythonを学んでおけば株式の投資に役立つだけでなく、これからのキャリアを形成する上でも力強い武器となるでしょう。

『私もPythonを学んでみたい!』

という人は以下のリンク先をご覧ください。

▼ Pythonを効率的に学ぶ方法を知りたいなら以下をクリック ▼

Pythonを学ぼう

 

なぜプログラミングを学ぶ必要があるのか?その理由がわかります。

そして、『これがPythonを効率的に学ぶ方法だ!』と自信をもっておすすめする学習方法について解説しています。

この記事と出会ったのも何かの縁です。
ぜひチャレンジしてみてください!

 

まとめ

・"Plotly" はデータを簡単に可視化してくれる便利なライブラリ
・"Plotly"を使えば動的なチャートが”爆速”でつくれる


注記事項

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

 

-Pythonコード集