前回、【Chart.js】の使い方を学んだので今回は実践として、ビットコイン/円(BTC/JPY)リアルタイムチャートを作成してみました。
BTC/JPYリアルタイムチャート デモ
リアルタイムチャートのデモです。自動的にレート情報が流れます。
リアルタイムチャートデモのコード
説明の前に以下、デモのコードの全容です。
HTML
Javascript
リアルタイムチャート作成手順
ここからはBTC/JPYリアルタイムチャート作成手順を説明していきます。
まずは今回のデモの作成に必要なプラグインです。
【Chart.js】【chartjs-plugin-streaming】を使用します。
【Chart.js】を読み込む
Chart.jsのインストールや使用方法については以下をご参考にしてください。
Fetch failed: 404 リンクエラー
今回もCDNを利用してscriptを読み込みます。以下をHTMLに記載します。
【chartjs-plugin-streaming】を読み込む
「
」はリアルタイムチャート用のChart.jsの拡張プラグインです。こちらもCDNで読み込みます。
HTMLの記述
ポイントはチャートをChart.jsで表示するためのcanvasタグです。
ここにリアルタイムチャートを生成します。
Javascirptの記述
WebSocket
ビットコインのレート情報を取得するため、「bitFlyer」に「WebSocket」で接続します。
取得する情報(channel)を記述して購読(subscribe)するための変数。
取得した価格(price)を格納するための変数。
Websocket 接続
Websocket 受信(message)
Chart.js
HTMLに記載したDOM要素を取得
chartjs-plugin-streamingのオプション一覧
名前 | タイプ | デフォルト | 説明文 |
---|
duration | number | 10000 | データの表示時間 |
ttl | number | | 保持されるデータの期間 |
設定しない場合、グラフから自動的に削除 | | | |
delay | number | 0 | チャートに表示される遅延時間 |
refresh | number | 1000 | データの更新間隔 |
onRefresh | function | null | refresh後に呼び出されるコールバック関数 |
frameRate | number | 30 | グラフがディスプレイに描画される頻度 |
pause | boolean | false | trueでスクロール停止(onRefreshは呼び出される) |
まとめ
- グラフを描画する時は「Chart.js」を使う。
- リアルタイムチャートを作成する時はChart.jsの拡張プラグイン「chartjs-plugin-streaming」を使う。
- 「bitFlyer」に「WebSocket」で接続して必要情報を取得する。
関連リンク
Fetch failed: 404 リンクエラー