はじめに
データ分析をするときに、グラフやチャートなどを利用してデータを可視化する場面は多いと思います。
kintoneの基本機能でもグラフは作成できますが、データ可視化ライブラリを使うことでより表現力の高いグラフを作成できます。
今回の記事では、オープンソースのデータ可視化ライブラリの Apache ECharts を使って、統計ダッシュボードをkintoneに表示するカスタマイズを紹介します。
完成イメージ
今回のカスタマイズを適用することで、以下の画面にApache EChartsで生成したグラフを表示させることができます。
- レコード詳細画面
- レコード一覧画面
- ポータル画面
- モバイル画面
レコード詳細画面にグラフを表示
レコードへ登録された数値を使って円グラフを生成し、該当レコードの詳細画面に表示します。
レコード一覧画面にグラフを表示
アプリの全レコードを取得し、取得した数値を元に積み上げグラフを生成し、レコード一覧画面に表示します。
ポータル画面にグラフを表示
該当アプリの全レコードを取得し、取得した数値を元に折れ線グラフを生成し、ポータル画面に表示します。
折れ線グラフの各日付の数値をマウスオーバーする際に、該当日付の数値の内訳を円グラフに表示します。
モバイル表示に対応
モバイルからも手軽にグラフを確認できます。
アプリの準備
グラフを表示するための「売上管理アプリ」を作成します。
「はじめから作成」でアプリを新規作成し、次のフィールドをアプリに追加してください。
フィールドの種類 | フィールドコード | 備考 |
---|---|---|
スペース | report | 生成したグラフを表示するためのスペースです。 |
文字列(1行) | year | グラフの「年度」情報を入力します。 |
日付 | date | グラフの「日付」情報を入力します。 |
文字列(1行) | department | グラフの「製品」情報を入力します。 |
計算 | total | グラフの「総売上」情報を計算します。 計算式には、 channel1+channel2+channel3+channel4+channel5 と設定します。 |
数値 | channel1〜channel5 | グラフの各地域の売上を入力します。 フィールドコードがchannel1〜channel5の数値フィールドを5つ追加します。 |
サンプルコード
echarts_app.js
レコードの詳細画面と一覧画面にグラフを表示するプログラムです。
JavaScriptファイルとして保存してください。
|
|
echarts_portal.js
ポータル画面にグラフを表示するプログラムです。
69行の「app_id」の値をご利用のアプリのidに変更したうえで、JavaScriptファイルとして保存してください。
|
|
EChartsの基本的な使い方
この部分で、EChartsのグラフの基本的な使い方を解説します。
今回のサンプルコードで利用した各グラフの使い方については、以下のECharts公式サンプルコードを確認してください。
グラフの初期化
次のサンプルコードのように、EChartsのインスタンスの作成は
echarts.init()
で行います。
複数のインスタンスを一度に初期化しないように気を付けてください。
|
|
「echarts_app.js」の65行目〜69行目では、echarts.init()
で円グラフのインスタンスを生成しています。
|
|
グラフの描画
次のサンプルコードのように、グラフのレンダリングは
setOption()
で行います。
グラフのすべてのパラメーターとデータをsetOption()
から変更できます。
|
|
「echarts_portal.js」の85行目〜132行目では、setOption()
でグラフのパラメーターとデータを指定しています。
|
|
「echarts_portal.js」の48行目〜65行目では、折れ線グラフのupdateAxisPointer
イベントで受け取ったパラメーターとデータを setOption()
で円グラフに指定しています。
|
|
EChartsのイベント
次のサンプルコードのように、EChartsは
on()
を使って、イベントハンドラーをバインドできます。
EChartsには2種類のイベントがあります。
mouse events
の場合、マウスがチャート内の特定の要素をクリックやマウスオーバーなどをするときにトリガーされます。
dispatchAction
の場合、dispatchActionが呼び出された後にトリガーされます。
|
|
「echarts_portal.js」の48行目〜65行目で、折れ線グラフのupdateAxisPointer
イベントをトリガーに円グラフを生成しています。
|
|
動作の確認
サンプルデータの追加
グラフに表示するデータを「売上管理アプリ」に追加してください。
次のサンプルデータを参考にしてください。
ライブラリファイルの準備
今回利用するライブラリは、次の2つです。
-
Apache ECharts
今回はv5.3.0を利用します。
詳細は 公式ドキュメント を参照ください。
以下のリンクより「echarts.common.js」ファイルをダウンロードしてください。
https://github.com/apache/echarts/blob/5.3.0/dist/echarts.common.js -
@kintone/rest-api-client
今回はv2.0.33を利用します。
詳細は 公式ドキュメント を参照ください。
以下のリンクを利用しますので、控えておいてください。
https://unpkg.com/@kintone/rest-api-client@2.0.33/umd/KintoneRestAPIClient.min.js@kintone/rest-api-clientは、kintone REST APIをJavaScriptで扱う際に必要な処理をまとめたライブラリです。
本クライアントで用意されたメソッドを呼び出すだけでkintone REST APIを実行できるので、コードの記述量を減らすことができます。
今回は、レコードを一括処理メソッドを利用しています。
詳細は kintone JavaScript Client を確認してください。
カスタマイズの適用
さきほど用意したライブラリとサンプルコードをkintone環境に適用します。
サンプルコードを正常に動作させるために、ライブラリファイルを先に読み込む必要があります。
また、サンプルコードはモバイル表示に対応しています。
モバイル画面にグラフを表示させたい場合は、同じサンプルコードを「モバイル用のJavaScriptファイル」にもアップロードしてください。
レコード詳細画面/一覧画面にグラフを表示するカスタマイズの適用
「売上管理アプリ」の設定画面を開き、「設定」タブの「JavaScript / CSSでカスタマイズ」をクリックします。
以下の画像を参考に、今回利用するライブラリのファイルと先ほど作成したJavaScriptプログラムを設定します。
設定を保存後、アプリを更新し、レコードの詳細/一覧画面を表示します。
完成イメージのようにグラフが表示されれば成功です。
ポータルにグラフを表示するカスタマイズの適用
kintoneのシステム管理画面を開き、「JavaScript / CSSでカスタマイズ」をクリックします。
以下の画像を参考に、今回利用するライブラリのファイルと先ほど作成したJavaScriptプログラムを設定します。
ポータルのカスタマイズは、kintoneのシステム管理から適用する必要があります。
kintoneシステム管理画面を開く
方法はリンクを参照してください。
設定を保存後、アプリを更新し、ポータル画面を表示します。
完成イメージのようにグラフが表示されれば成功です。
おわりに
今回の記事は、Apache EChartsを使ってkintoneのアプリやポータル画面に統計ダッシュボードを表示するカスタマイズを紹介しました。
他にも
チャート/ガントチャート
について紹介している記事がありますので、興味がある方はぜひ試してみてください。
このTipsは、2022年3月版kintoneで動作を確認しています。