Plotly のローソク足チャート
データ サイエンスは、アルゴリズム、プロセス、システム、数学、および科学的手順を使用して、構造化データ、非構造化データ、およびノイズの多いデータから洞察と知識を抽出し、それらの学習を使用してビジネス上の問題を解決し、学習ベースのソリューションを作成するコンピューター サイエンスの分野です。
Python と R は、これらの言語が提供するサポートと機能により、データ サイエンス コミュニティで有名な 2つのプログラミング言語です。
データ ビジュアライゼーションはデータ サイエンスの重要な要素であるため、Python はインタラクティブなチャートやマップの作成に役立つライブラリ Plotly を提供しています。
散布図、折れ線グラフ、棒グラフ、円グラフ、バブル チャート、エラー バー、ヒストグラム、2D ヒストグラム、ヒートマップ、ローソク足、Mapbox コロプレス マップ、クラスターグラムなど、さまざまな種類のプロットをサポートしています。
この記事では、Plotly がサポートするプロットの 1つ、つまりローソク足について説明します。
Python のローソク足
ローソク足チャートは、特定の x
座標の 高
、安値
、始値
、および 終値
の値を表す金融チャートの一種です。 ローソク足のボックスは、open
値と close
値の間のスプレッドを表します。
ボックスの端を延長する線は、低い値と高い値の間の広がりを表します。
Plotly を使用してローソク足チャートを作成できます。 簡単な例については、次の Python コードを参照してください。
import pandas as pd
from datetime import datetime
import plotly.graph_objects as go
dataFrame = pd.read_csv(
"https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv"
)
figure = go.Figure(
data=[
go.Candlestick(
x=dataFrame["Date"],
open=dataFrame["AAPL.Open"],
high=dataFrame["AAPL.High"],
low=dataFrame["AAPL.Low"],
close=dataFrame["AAPL.Close"],
)
]
)
figure.show()
出力:
ファイル内のデータは次のようになります。 以下は、CSV ファイルの最初の 10 行です。
Date,AAPL.Open,AAPL.High,AAPL.Low,AAPL.Close,AAPL.Volume,AAPL.Adjusted,dn,mavg,up,direction
2015-02-17,127.489998,128.880005,126.919998,127.830002,63152400,122.905254,106.7410523,117.9276669,129.1142814,Increasing
2015-02-18,127.629997,128.779999,127.449997,128.720001,44891700,123.760965,107.842423,118.9403335,130.0382439,Increasing
2015-02-19,128.479996,129.029999,128.330002,128.449997,37362400,123.501363,108.8942449,119.8891668,130.8840887,Decreasing
2015-02-20,128.619995,129.5,128.050003,129.5,48948400,124.510914,109.7854494,120.7635001,131.7415509,Increasing
2015-02-23,130.020004,133,129.660004,133,70974100,127.876074,110.3725162,121.7201668,133.0678174,Increasing
2015-02-24,132.940002,133.600006,131.169998,132.169998,69228100,127.078049,111.0948689,122.6648335,134.2347981,Decreasing
2015-02-25,131.559998,131.600006,128.149994,128.789993,74711700,123.828261,113.2119183,123.6296667,134.0474151,Decreasing
2015-02-26,128.789993,130.869995,126.610001,130.419998,91287500,125.395469,114.1652991,124.2823333,134.3993674,Increasing
2015-02-27,130,130.570007,128.240005,128.460007,62014800,123.510987,114.9668484,124.8426669,134.7184854,Decreasing
...
次に、Figure
クラスを使用して、data
プロパティを Candlestick
クラスのオブジェクトに設定するインスタンスを作成します。 Candlestick
クラスのインスタンスでは、x
値を Date
列に、open
を AAPL.Open
列に、high
を AAPL.High
列に、low
をそれぞれ設定します。 AAPL.Low
列、および close
から CSV ファイルの AAPL.Close
列。
次に、Figure
インスタンスで利用可能な show()
メソッドを使用してローソク足チャートを表示します。
ローソク足プロットと一緒にボリューム プロットを表示する
ローソク足プロットと一緒にボリューム プロットを表示するには、ローソク足プロットに小さなサブプロットを追加します。 このプロットは、ローソク足プロットの下にあり、毎日販売される在庫量に関する詳細が含まれています。
グリッド構造を作成するには、make_subplots()
メソッドを使用し、2
行と 1
列を指定します。 次に、上記のローソク足プロットと出来高を表すバー プロットを作成します。
最後に、作成したばかりのグリッドまたはサブプロットに両方のプロットを追加し、両方のプロットを表示します。 figure.update(layout_xaxis_rangeslider_visible = False)
ステートメントは、ローソク足プロットによって提供される rangeslider を無効にすることに注意してください。
同じものについては、次の Python コードを参照してください。
import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots
dataFrame = pd.read_csv(
"https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv"
)
figure = make_subplots(
rows=2, cols=1, shared_xaxes=True, vertical_spacing=0.05, row_width=[0.2, 0.7]
)
appleStockPlot = go.Candlestick(
x=dataFrame["Date"],
open=dataFrame["AAPL.Open"],
high=dataFrame["AAPL.High"],
low=dataFrame["AAPL.Low"],
close=dataFrame["AAPL.Close"],
)
volume = go.Bar(x=dataFrame["Date"], y=dataFrame["AAPL.Volume"], showlegend=False)
figure.add_trace(appleStockPlot, row=1, col=1)
figure.add_trace(volume, row=2, col=1)
figure.update(layout_xaxis_rangeslider_visible=False)
figure.show()
出力: