Edited at

Kibana CanvasでCanvasならではの表現をしよう


canvasといらすとやで1つネタを

Advent Calendar 12/05分 今日は「canvasといらすとやで1つネタを」でお送りします。

タイトルが微妙なのは、駆け込みでAdvent Calendarに登録したからです。すみませn。

閑話休題。

Canvasって何、と言われたら従来のダッシュボードを、”さらにグラフィカルにしたもの”と考えると良いと思います。

利用イメージについては、以下の紹介が詳しいです。

人気のカフェは!? Kibana Canvasの可能性|Elastic{ON} 2018 より

本家のGetting startedはこちら

https://www.elastic.co/guide/en/kibana/current/canvas-getting-started.html

Canvasは、6.5から標準でKibanaについてくるようになり、Githubのissueをみるとまだまだ成長途中ではありますが、

従来のダッシュボードでは表現できなかったようなものができる代物となっており、期待されているプロダクト?モジュール?かと思います。

前半では、Canvas全体のご紹介をし、後半ではその中でも画像を使った部分について、いらすとや画像で遊びながら触れていきます。

ネタだけ楽しみたい人は、テキストを飛ばして画像だけ見ていただければと思います。


Canvasのデモ画面の紹介

6.5では、デモ用にサンプルデータを入れる仕組みがあるので、これを利用するとダッシュボード、Canvasともにすぐに見ることができます。

Canvasならではの表現を見ていただくために、通常のDashboardとCanvasの画面を比較できるよう、両方の画像をあげております。


eコマースサイトの例


通常のダッシュボード


Canvasでの表示例

グラフを散りばめただけの数字に埋もれたダッシュボードとは違い、ポスターのような見せ方です。


今回やること

で、ここからが本題です。

この部分を見てください。ただの棒グラフではなく、達成度合いを絵を塗ることで表現しています。

これは従来のダッシュボードではできなかったところです。

こういうのは、どうやったらできんの? ということを、ステップバイステップでご紹介します。


Image reveal

この塗り絵タイプのものは、CanvasのWorkpadで「Add Element」から「Image reveal」を選択します。

デフォルトでは、Elasticのロゴが指定されている状態で追加されます。


設定方法


Measure

ここでは、どのぐらい塗るのかの値について、どの項目の値を使うかどうかを決めます。

Valueの左側では、Averageと見えているところは、MaxやMin,Sumなどの関数を指定します。

表示に使われる値は、0から1の間である必要があります

この範囲でない数値が与えられたときは、△に!マークが入ったエラーアイコンが表示されます。

右側には項目名が出ていますが、これは「Data」タブで設定されている内容から項目名を拾ってきています。

上記例ではtestと表示されていますが、それはDataでこのようなデータを取得しているからです。

Saveボタンを押さないと、反映されないので注意してください。

Elasticsearch SQL queryで生データを検索し、表示させるべきでしょうが、ここではSQLをCanvasでの設定方法確認を優先させるための便宜的な手段としています


Reveal Image

Upload Imageで画像のURLやアップロードを行います。

Reveal fromでどこから塗るかを設定できます。


  • Top

  • Left

  • Bottom

  • Right

の4種類があり、デフォルトではBottomになっています。


背景画像の設定

背景となる画像を設定するには、Reveal Imageの横にあるプラスアイコンから背景の追加を選択することで、設定箇所が表示されるようになります。

イラレやPhotoshopなどの技術が全くございませんので、信頼と実績のMS Paintで背景画像をこしらえ、その画像を設定します。

塗る値を0.3ぐらいに設定する(3割塗る)、左からと設定した場合、こんな感じになります。


組み合わせれば、こんなことも!

会議室の利用状況なんかの可視化風にもなりますね。

下地にフロア地図をベタっとはり、「使用中」の画像を上に置いています。

使用中が1, 空室の場合は0となるようなデータにしておくと、こんな感じになります。

何もないときは、こんな感じに。


組み合わせれば、こんなことも!!!

体力ゲージの背景画像を用意しておいて、上に残存体力をRevealで表示させます。

1P側は右からReveal、2P側は左からRevealでこんな感じになります。

もっと背景をちゃんと作れば、さらにインパクトがある遊びが出来るのですが、絵は描けないわ、

著作権の問題もあるわで、フリー素材で探すとこれが限界でした。

いちおう、スト2の春麗のステージがこんなんだった気がしています。


Canvas as a Code!?

GUIで設定している操作も、最終的にはExpression Editorのところで見られるように、テキストベースで記述することもできるようです。

AutoCompleteがあるとはいえ、Timelionの書式とはまた違うし、最初はよくわからない人も多いのではないでしょうか。


改めてeコマースのCanvasを見る

「Manage Assets」から確認してみますと、白い女性の画像と、色のついた女性の画像が2つあることが分かります。

ソバージュの髪の下絵はちょっと選択する際に邪魔だったので、横によけてReveal部分だけを見てみると、

先に確認した2枚の絵が設定されていることが分かります。

こうやってあの絵は作られてたんですね。


Image Repeat

画像繋がりで、もうひとつRepeatがあります。

画像を横に並べて表現するやつですね。Amazonでいうところの、評価の星のようなものができます。

これをやるには、「Add Element」から「Image Repeat」を選択します。

デフォルトでは、Elasticのロゴがリピート画像に設定されています。


設定方法


Measure

繰り返す数(整数)を取得する項目を設定します。

整数であることに注意してください。

3.5や3.9999のような値であった場合は、3回のリピートになります。


Repeating Image

繰り返し画像を指定します。

プラスアイコンを押すことで、以下の設定ができるようになります。

項目
内容

Empty Image
Max回数に満たない場合、その足りない分を埋める画像

Image Size
画像サイズの指定(%)

Max count
何回繰り返すかの最大値

5段階評価とするので、Max Countを5、Empty Imageに灰色の星画像を設定すると、こうなります。

Revealと比べて、3.5のような表現は難しいですが、☆の数の最大値を6や10に増やすなどのやりやすさに分があるように思います。


組み合わせれば、こんなことも!

デフォルトでは、画像は横並びになります。

パワーポイントで回転させるように、左に90度回転させてやると、縦並びにもなります。

その場合、画像を右に90度回転させておくと揃います。

先の会議室の中に、どのくらいの人が入っているのか、というような可視化のイメージです。

このイメージは、こちらからInspire the next.



まとめ

長々とスクロールいただきありがとうございました。

今回のような表示形式をとる場合には、どのようなデータの持ち方をすればいいのか、という点については検討を要しますが、

無機質なダッシュボードでもなく、BI以外でのサイネージのような利用用途でも活用できるかと思います。

明日は、@yu_kawachaki さんの「Kibana Canvasをはじめてみよう」です。ご期待ください。

@yu_kawachakiさんは、NTTテクノクロス Advent Calendar 2018で以下も公開なさっています。あわせてごらんください。