Google Data Portal に入門〜データビジュアライゼーションの基本を少し実践するまで

はじめに

直近の業務でダッシュボード構築を経験させてもらえることになりそう。 一応軽くDataPortalを触ったり、DataVisualizationの書籍*1, *2を読んではみました。ですが、業務レベルのダッシュボード構築をするには、まだまだ勉強不足だと思うので、入門してみたいと思います。

できるだけ効率良く学ぶ為に、まず最低限の機能や操作方法を学んだら早速(基礎的な)ダッシュボード作成をやってみる、という流れで行こうと思います。



1. 今回参考にさせていただく資料

できるネットさんの解説記事

dekiru.net

Google Data Portal 自体の解説+BIの基礎知識をきれいにまとめてくださっています。

データビジュアライゼーションの教科書

データビジュアライゼーションとは何なのか、という本質的な内容にはじまり、 データビジュアライゼーションに関する様々な How to が体系的にまとまっている書籍です。

そもそもこの書籍自体が非常に読みやすいです。

インフォメーションデザインを専門にする方が書いているので、当然かもですが笑

アウトラインや色使いなど細かいところが丁寧に作られているので、個人的には電子書籍より紙媒体を推奨します。

この手の本は、電子書籍で読むとせっかく整えられたデザインが崩れてしまうという難点がありますからね。

電子書籍の仕様が今後改善されることを密かに期待しています……

データ視覚化のデザイン

あえて「データビジュアライゼーションの教科書」との比較をするならば、 データビジュアライゼーションに関する Why が体系的にまとまっている書籍と言えるでしょう。

なぜそのような見せ方をすべきなのか、といった情報ですね。

データビジュアライゼーションの教科書同様に、読者が読みやすいようにデザインされています。この本自体がインフォメーションデザインの教科書になりますね。

本書の著者である永田さんは、私の所属するデータラーニングギルドのメンバーでもありまして、 出版前、表紙デザインのアンケートにも携わったことから、個人的に思い入れのある本でもあります。



2. 基本操作を学ぶ

Googleアカウントあればデータポータルへのログインは簡単にできます。

ここは省略します。(参考

データポータルのホーム画面

f:id:massox:20200912144946p:plain
Google Data Portal Home

  • ファイル種別3種
    • レポート
      • データをグラフなどの形で視覚化したファイルです。名称は「レポート」ですが、ダッシュボードとして使うことが多くなります。データのビューワーとしての役割を持ちます。(できるネットより引用)
      • 監視系のBI機能を持つものといったところでしょうか
    • データソース
      • グラフなどの基になるデータへのアクセス条件や、データの型定義が格納されたファイルです。データのモデリングをする役割を持ちます。(できるネットより引用)
      • ダッシュボードに表示するデータのスキーマファイルといったところでしょうか
    • エクスプローラ
      • データを加工するために作成するファイルです。Excelの「ピボットテーブル」のように、データをさまざまな切り口で分析することを可能にします。(できるネットより引用)
      • 探索系のBI機能を持つものといったところでしょうか
  • 新規作成からはレポート・データソース・エクスプローラそれぞれを作成することができるようです

レポートの概観を把握する

テンプレートストアからGoogle Analytics for Firebase Reportを選んで、いろいろと触ってみます。

f:id:massox:20200912145021p:plain
Select template GA for Firebase Report

このテンプレートは、Google BigQueryをデータソースとするものです。

直近でダッシュボードを作るときのソースはBigQueryになる想定なので、こちらを勉強の材料に選ぶことにします。

テンプレートを見るだけでも「おそらくこんな機能があるんだろうな」「こんな作りになっているんだろうな」というのが予想できますね。

f:id:massox:20200912150534p:plain
Template - Dashboard

f:id:massox:20200912150612p:plain
Template - Events

テンプレートからレポートを作る際にデータソースの選択が求められます。Sampleのデータソースがあるっぽいので、これで「レポートをコピー」してみたのですが、データを取得できないみたいですね。

f:id:massox:20200912151640p:plain
create_report_from_template

f:id:massox:20200912151708p:plain
failed_to_create_report_from_template

テンプレート選択 > テンプレートを使用 > データソースの選択を求められる ←いまここ

ということで、まずはデータソースに接続する必要がありそうです。



3. ダッシュボード構築の基本のキ

ここからの簡単な流れを説明すると、

  • まずは、データソースを作る
  • 作ったデータソースを接続してレポート(ダッシュボード)に表示する

という感じで進めます


3.1. データソースに接続してデータを取り込む

まずは、データソースを作ります。

入力元としては、

などを選択できるようです。

ここでは、できるネットさんが作ってくれているサンプルのスプレッドシートを使わせてもらうことにします。

接続先がGAであろうが、BQであろうが、本質的には何某かのテーブルとつなぐことには代わりありません。スプレッドシートと接続して行う作業はデータソースの種類が変わってもそのまま応用できるでしょう。(構造化データであれば)

スプレッドシートの内容はこんな感じのテーブルになっています。

f:id:massox:20200912174250p:plain
datasource-tbl

データソースへの接続手順は、

  1. 作成ボタン -> データソース
  2. データソースの分類としてGoogleスプレッドシートを選択
  3. 接続元のスプレッドシートをURLで指定
  4. 接続できたことをデータポータルの画面上で確認

詳細は、こちらの記事に書いてあるので、細かい説明は省略することにします。

以下、接続した結果です。

データソースの名前はスプレッドシートのファイル名が割り当てられるみたいですね。

内容を見てみると、スプレッドシートのカラムが「フィールド」という列に表示されていて、データ型(おそらく自動で予測されている)が表示されています。データ型や集計方法などをいじって、すなわちスキーマを定義して、データソースの作成が完了するという感じでしょうか。

f:id:massox:20200912173810p:plain
datasource_connect_00

右上を見ると、気になるメニューがあります。

データソースに新たなフィールドを定義・追加したり、データソースを探索的に分析したり、といった操作を簡単に始められるようですね。

f:id:massox:20200912175542p:plain
datasource-detale

3.2. 取り込んだデータを表示する

データソースの作成が完了したので、レポートを新規作成してデータソースをグラフとして表示してみます。

取り込んだデータの(レポートへの)表示手段は、

  1. 作成ボタン -> レポート
  2. 表示したデータソース(先程作ったもの)を選択
  3. グラフを追加
  4. グラフを調整(ここは後ほど解説

詳細は、こちらの記事に書いてあるので、細かい説明は省略することにします。


では、結果を見てみましょう。

まずは、レポート新規作成 -> 先程つくったデータソースを追加して日毎の売上金額を棒グラフで表示した結果が以下です。

左上の表は、なんかはじめから表示されていました。

f:id:massox:20200912180734p:plain
daily-purchases

ディメンションや指標は、画面右側の「使用可能な項目」からドラッグアンドドロップで追加できます。ここらへんは直感的な操作ができるので簡単そう。

1つ注意したいのが、「(デフォルトでは)グラフ順序は指標の降順ソートになっている」ことです。つまり、「時系列順になっていない」んですね。あとで修正します。


3.3. データの表示手段いろいろ試す

ここからは、少しグラフをいじります。いじるポイントは2つ。

  • 売上目標と売上金額を並べて棒グラフで表示
  • 棒グラフの日付の順序にしたがって左から右へ並ぶようにソート

① 指標に売上目標を追加する

f:id:massox:20200912182043p:plain
daily-purchases_01

② 日付の順序になるように棒グラフをソートする

f:id:massox:20200912182534p:plain
daily-purchases_sorted-by-purchases

f:id:massox:20200912182631p:plain
daily-purchases_sorted-by-date

このようにわりと直感的な操作で

  • どのフィールドをディメンション・指標として
  • どのようなグラフ形式で
  • どう表示するか

といったことを編集していくみたいです。

具体的な操作方法は、今後使っていく中で身に付いていくでしょう。



4. ダッシュボードのデザイン基本のキを実践

ここでは、伝わりやすいようにデザインされたダッシュボードを作る上で基本となる事項を学びます。

まずは、見栄えを左右する基本機能の一部である「フィルタ・スタイル」をまず触ってみます。

次に、冒頭で紹介した書籍を参考に「伝わるデザインを意識した見栄え調整」をやってみます。

その前に、デザインのしがいが出るように(?)グラフ要素をちょっと増やしてみます。以降では、以下のグラフを操作していきます。

f:id:massox:20200912193951p:plain
practical_sample

横軸に日付をとった「時系列グラフ」にし、売上目標と売上金額に加えて達成率(折れ線)を表現しています。縦軸は左が金額、右が達成率です。


4.1. フィルタを設定してみる

フィルタ機能とは何か、何のための機能か?

フィルタ機能とは、表示したいものだけ表示させられる機能です。

「1年分の売上データの内で今月分だけ表示したい」とか「全カテゴリのデータの内あるカテゴリのデータのみを表示したい」とかですね。

フィルタ機能の存在意義は、「基本は全体的なデータを見たいけど、一瞬だけ部分のデータがみたいという要求を満たすもの」という理解をしています。

例えば、グラフを表示するときに一部のデータのみ(例えば今月分だけ)グラフ化することもできるのですが、基本的には全体(1年分のデータ)を見つつ、一瞬だけ部分的なデータ(今月分)を見たいなど

こういった場合に力を発揮するのがフィルタ機能なのかなと思っています。

データビジュアライゼーションの教科書によれば、フィルタがたくさんありすぎるダッシュボードは、「ユーザーの使用負荷を高めてしまう」という点において、アンチパターンとされているみたいです。

まあ、そこらへんは追々考えていくとして、ここではデータポータルのフィルタ機能を触ってみることにします。

フィルタ機能を扱う

データポータルのフィルタ機能を扱う上で抑えておいた方が良さそうなものは以下かなと思います。

  • フィルタは影響範囲の違いで2種類に分けられる(参考
    • ページ全体に影響を与える「コンポーネントによるフィルタ」
    • 任意のグラフのみに影響を与える「グラフの設定によるフィルタ」

今回は、「グラフの設定によるフィルタ」を使って行きます。

① 複合グラフのフィルタを追加する

「フィルタを追加する」を押します。

f:id:massox:20200913104622p:plain

② フィルタ設定UIが表示される

f:id:massox:20200913104642p:plain

③ 所望の条件とフィルタ名を設定してフィルタを保存する

フィルタ名称はわかりやすく記述した方がいいでしょう。

例として挙げているのが分かりやすいかどうかは置いておきましょう(笑)

f:id:massox:20200913104703p:plain

④ フィルタを適用した結果を表示する

上記のフィルタの保存ボタンを押すと、フィルタされたグラフが表示されます。

f:id:massox:20200913104721p:plain

ワンポイント

右サイドバーにある「フィルタを適用」がOFFになってるのに適用されるのはなぜ?という疑問が湧いたのですが、どうやら編集画面上にフィルタ適用後 or 適用前を表示することとは無関係なようです。

編集画面でフィルタ適用前のグラフを見たければ、右サイドバーから「売上目標達成率130%以上」のフィルタを削除しましょう。フィルタのところをマウスオーバーすると「✗」ボタンが出るので直感的に操作できます。

f:id:massox:20200913121730p:plain

f:id:massox:20200913121801p:plain

ここでフィルタを消したとしても、ちゃんと裏では保存されてるので安心してください。

f:id:massox:20200913121823p:plain


4.2. スタイルを扱う

ここでは、グラフの色や枠線、透過度合いなど見栄えに直結する要素「スタイル」を編集方法を学びます。エクセルでグラフを扱ったことがある人も多いと思うので、操作の雰囲気は簡単につかめると思います。

大事なのは、次節で扱う「伝わりやすいダッシュボードにする為にどうデザインするか」です。


まずは、右サイドバーで「スタイル」タブを選択しましょう。系列ごとに見栄えの編集ができるようになっています。項目自体もエクセルのグラフ編集とさして変わらないので画像を載せるだけにします。

今回は、グラフのタイプとして、複合グラフ(棒グラフ+折れ線)を選択しているのでそれに従ったメニューになっています。他のグラフタイプにすると多少変化はあると予想できます。

f:id:massox:20200913122918p:plain

4.3. デザインを意識したスタイル修正

さて、最後は「伝わるデザイン」を意識したスタイル修正を1例だけやろうと思います。実務ではここに頭を使うことがほとんどでしょう。

データビジュアライゼーションの教科書を参考に、色使いの見直し をしようと思います。

スタイル修正の前に〜ビューモードで実際の見栄えを確認する

これまでお見せしてきたのは編集モードの画面です。実際のダッシュボードの見栄えを確認するには、ビューモードに切り替える必要があります。ビューモードに切り替えると、例えばページに描かれたグリッド線などが消えます。

f:id:massox:20200913124310p:plain
Before:編集モード

f:id:massox:20200913124339p:plain
After:ビューモード

伝わるデザインにするための9つの色の基本

  1. 色は強調したい要素に使う
  2. 色の数は少なめに(今回のターゲット
  3. 彩度は控えめがオススメ
  4. 色相違いの2色使いは要注意(今回のターゲット
  5. 色使いの矛盾を避ける
  6. 色の持つイメージを意識する
  7. 1つの色に1つの役割
  8. 誰にでも優しい色を
  9. 無意味な背景色を使わない

上に列挙した9つのポイントの内、「2, 4」の2つのポイントを用いて今回のグラフのスタイルを修正していきたいと思います。

「色の数は少なめに」を実践

まず、今3色の色を使っているのですが、3色も必要でしょうか?今表示している項目は、

  • 売上目標
  • 売上金額
  • 達成率

の三要素ですが、「売上目標」と「売上金額(≒売上実績)」は売上(円)という同じグループに所属していて、サブカテゴリとして「目標」「実績」に分類されたものである、とは考えられないでしょうか?

共通のグループに属するものなので、色も同系統にしたいですね。そして、サブカテゴリの違いは色の明度などで表せば良さそう。と私は考えました。

こんな感じ。若干うるささが軽減されたように思います。

f:id:massox:20200913131131p:plain
売上目標と売上金額(実績)を同系統色にした

一応、「どちらかというと実績の方が気になる」ユーザーが多いと思ったので、実績(売上金額)の方を濃い色にしています。

「色相違いの2色使いは要注意」を実践

次に、色相です。今色相としては、「青系」「オレンジ系」を使っています。まさに要注意すべき状況ということですね。

色相違いの2色を使うと、「どちらの色に着目すべきか分かりにくい」という問題があるんです。実際、達成率と売上目標+売上金額グラフどちらをみればいいのでしょうか。よくわかんないですね。まあ、サンプルなのでしょうがないのですが。

ここで、1つ簡単な仮定を置きましょう。このレポートで伝えたいものは「9月の売上目標達成率が日毎にどう変動しているか」であるとします。

とすれば、売上目標と売上金額(実績)のグラフはモブキャラになります。ということで、グレースケールになってもらいましょう(笑)

こんな感じ。

f:id:massox:20200913132728p:plain

f:id:massox:20200913132748p:plain

以上で、「デザインを意識したスタイル修正」を終わります。

本当はまだまだ修正するところはありますが、本記事ではここまでとします。




その他

記事書いてる最中に1つ気づいたのですが、縦棒グラフだと全部で30件あるはずのデータの内10件しか表示されない……なぜ?

いろいろと触った結果「縦棒グラフ」だけでこの現象が起きているみたい。一旦宿題とします。