Golangでグラフを描くときには
gonum plot
が便利です。
これを使った例として、以前、棒グラフの記事も書きました。
その他の例としては、公式のwikiやGo でグラフを plot するパッケージを試したが参考になります。
gonumのレポジトリを見ると
棒グラフや箱ひげ図、折れ線グラフなどが標準で実装されています。
(他にも関数などおもしろそうなものもあります)
ところがローソク足チャートは標準で実装されていないようです。
レポジトリのWikiを見ているとオリジナルのPoltter
をカスタマイズするチュートリアルがあったので、
今回はローソク足チャートを実装してみました。
実装
実装はこちら。
gonumのPlotter
は
定義にあるように
Plot(draw.Canvas, *plot.Plot)
を実装してあげる必要があります。
Plot(draw.Canvas, *plot.Plot)
を実装した独自の型を、plot.New()
で生成した*Plot
型の変数に、Add()
してあげれば、グラフが描けます。
今回はこのように実装しました。
流れは大まかに以下です。
陽線と陰線は、始値と終値から計算できるので、Plot()
ではなく、
コンストラクタに委任し、各ローソクにColor
フィールドとして持たせることにしました。
それ以外にも軸の表示とか、データをどうやってもたせるのがいいのかとか
実装する箇所は意外と細かく広範囲に渡るので詳しくは実装をご参照ください。
使い方
インストール
go get github.com/cipepser/plot
描画
実行例は以下です。
描画したいデータはdata
に格納してください。
gist31d1820b58d1a4c7cf8d9d2e0013e515
結果
グラフは実行したディレクトリにimg.png
として出力されます。