前回、証券会社からDLした株価のCSVデータをOHLCの時系列データに変換しました。
今回は、グラフ描画をします。
CSVデータの読み込みと変換については、前回の記事をご覧ください
必要パッケージのインストール
前回から追加で必要なパッケージは
- Plots.jl
REPLからならパッケージモードで
(@v1.7) pkg>add Plots
Jupternotebookなどからは、パッケージモードで
using Pkg
Pkg.add("Plots")
それぞれインストールします。
データの準備
前回に引き続き、トヨタの株価データを使います。
OHLCに並んだデータを準備。前回の関数を使って読み込みます。
toyota = csv2ohlc("toyota.csv")
時系列グラフの描画
データが準備できたので、グラフを描いてみましょう
単純なグラフ
plot(toyota)
特に何も引数を与えなくても、プロットにデータを渡せば、描画してくれます。
ただ、これではちょっとごちゃごちゃしすぎですね。
列を指定して描画
列を指定して、描画してみましょう。
plots(toyota[:close])
close(終値)だけ描画しました。
列の指定方法は、
plots(toyota.close)
でもできます。
今は任意の1つを選択しましたが、2つ選択してみましょう。
例えば、高値と安値
plots(toyota[:high,:low])
こんな感じです。
ただ、これ1000行分のデータを描画してるので、やっぱりちょっとギューギューです。
行を指定して描画
次に行数を指定しましょう。
終値の1行目から100行目までを描画してみます。
plot(toyota.close[1:100])
だいぶスッキリしてました。
けど、せっかく時系列データなので、「何行目」より「日付」で指定したいですよね。
トヨタの2020年1月1日から2020年の12月31日までを指定してみます。
plot(toyota.close[Date(2020,1,1):Day(1):Date(2020,12,31)])
2020年は実際に市場が開いたのは、1月6日で、最終日が12月30日でした。そこらへんは、ちゃんと調整されて、データは6日分から描画されてます。
日付で指定する場合は
toyota.close[Date(2020,1,1):Day(1):Date(2020,12,31)]
[開始日:間隔:終了日]
と指定します。
行と列を指定して描画
グラフ描画の最後に日付で期間を指定して、複数列のデータを描画してみましょう。
2020年1月1日から2020年6月30日までの始値と終値を描画してみます。
plot(toyota[:open,:close][Date(2020,1,1):Day(1):Date(2020,6,30)])
まとめ
今回は、グラフ描画をしました。
単純な折れ線グラフだけご紹介しましたが、他にも株価データの場合は、ローソク足とかカギ足とか、出来高の棒グラフで表示したりとか、いろいろあります。
Plotsだけでは処理できないものもあるので、他のパッケージを使ったりすると、もっと様々なグラフの描画ができます。
気になる方はぜひ試してみてください。
コメント