Vue でローソク足(OHLC)チャートをプロット
はじめに
Vue でローソク足(OHLC)チャートをプロットする方法。
TL;DR
npm i chart.js vue-chartjs vue-chartjsfinancial
でインストール- JS ファイルと Vue ファイルに分けて実装するのが良い
- リアクティブにグラフを更新できる (癖があるので注意)
- 全部
from 'vue-chartjs-financial'
でimport
するのが安全そう - 細かい設定は chart.js 本家のドキュメントを参照
目次
環境・条件
1 | $ sw_vers |
詳細
以下のライブラリを使用する。
- apertureless/vue-chartjs
- chartjs/Chart.js の Vue 用 Wrapper
- ehajri/vue-chartjs-financial
- chartjs/chartjs-chart-financial の Vue 用 Wrapper
上記の通り、vue-chartjs, vue-chartjs-financial は Vue 用の Wrapper なので、チャートそのものの細かい設定方法などは chartjs 本家の方のドキュメントを参照。
セットアップ
npm i
でインストール
1 | $ npm i chart.js vue-chartjs vue-chartjsfinancial |
プロット方法
参考:
- ドキュメント: chartjs/chartjs-chart-financial
- サンプル動作イメージ: Financial | Chart.js
- サンプル実装内容: chartjs-chart-financial/docs at master · chartjs/chartjs-chart-financial
Vue での実装例は vue-chartjs-financial/Candlestick.vue at master · ehajri/vue-chartjs-financial を見るのが分かりやすい。
xxxx.vue
の mounted
で renderChart
としても描画はできる(ドキュメント Vue Single File Components にも最初の例はそう書かれている)が、Reactive にしたい(データセットの変更に合わせてグラフを 再描画/更新 したい)場合は Updating Charts に書かれているように JS ファイルと Vue ファイルとを分けるのが良い。
なお、グラフ更新には癖があるので注意が必要。
OHLC
, Candlestick
を使いたい場合は vue-chartjs-financial
から import
する必要があるので注意。
vue-chartjs-financial を使うプロジェクトの場合は全て from 'vue-chartjs-financial'
とするのが安全そう。
1 | // ↓ は OK |
なお datasets.data
に渡すデータは { o, h, l, c, t }
の Object
の配列、t
は Timestamp[msec]。
サンプル実装
以下は 2020/01/01〜2020/01/10 までの10日分のランダムな OHLC チャートをプロットするサンプル。
components/Candlestick.js
1 | // https://github.com/ehajri/vue-chartjs-financial/blob/master/src/components/Candlestick.js |
components/CandlestickChart.vue
1 | <!-- https://github.com/ehajri/vue-chartjs-financial/blob/master/src/views/Candlestick.vue --> |
まとめ
npm i chart.js vue-chartjs vue-chartjsfinancial
でインストール- JS ファイルと Vue ファイルに分けて実装するのが良い
- リアクティブにグラフを更新できる (癖があるので注意)
- 全部
from 'vue-chartjs-financial'
でimport
するのが安全そう - 細かい設定は chart.js 本家のドキュメントを参照
参考文献
- apertureless/vue-chartjs: 📊 Vue.js wrapper for Chart.js
- chartjs/Chart.js: Simple HTML5 Charts using the
- ehajri/vue-chartjs-financial: Incorporating Chartjs Financial Charts into vue-chartjs plugin
- chartjs/chartjs-chart-financial: Chart.js module for charting financial securities
- Introduction · Chart.js documentation
- Getting Started | 📈 vue-chartjs
- Financial | Chart.js
関連記事
- Chart.js(vue-chartjs) でツールチップの表示内容を変更
- apertureless/vue-chartjs でチャートの高さ(や幅、サイズ)を変更
- Chart.js で X軸, Y軸の値をカスタマイズ
- Chart.js(vue-chartjs) で凡例の一部を非表示にする方法
- Chart.js(vue-chartjs) でツールチップの表示位置を変更
- Vue.js で日本語変換での誤発火を抑止しつつ Enter キーで Submit
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア