動的な注釈 (Dynamic Annotations)

2015/11/25 15:28 Shingo 0 Comments

こんにちは、Nanaeです。

注釈って、ビューにベタ張りのものだと思っていませんか?
今回は、注釈を見せる/見せないを変更したり、いくつかのパターンで注釈を見せたいときなど、
何パターンか用意した注釈を選択して表示するテクニックを3種類ご紹介します。いわゆるダイナミックアノテーションと呼ばれるテクニックです。

↓このようなイメージで、右側の選択で表示する注釈を変えられる、というお話です。

まずは、注釈のおさらいです。注釈には3種類ありましたね。
・マーク:選択したマーク(棒グラフの棒や、線グラフのプロット部分)に対して注釈がつく。逆に言うと、マーク部分でないとこの注釈は入れられない。
・ポイント:ビュー内のあるポイント(点)に対して注釈がつく。
・エリア:ビュー内のあるエリアに対して注釈がつく。外れ値の説明や、あるエリアの説明に適している。

ポイントはある点を矢印で指しますが、エリアはある点の周辺に四角で置かれます。

ポイントとエリアは、フィルターなどで表示される範囲が変わったときに、表示されなくなる可能性があることに注意してください。
以下は、マーク、ポイント、エリアの注釈を入れた例です。

フィルターを使って全体の一部を表示させたとき、軸が変わります。そのため、フィルターの選択によっては、ポイントとエリアの注釈は見えなくなってしまいます。

それでは本題に入ります。何パターンか用意した注釈を、動的に選択する方法です。
(以下、Tableau Desktopに同梱されているサンプルのスーパーストアを使います。)

注釈を見せる/見せないなど、注釈を2通りで見せたいときに簡単に使える方法です。

☆動的な注釈1:二重軸を使用
左側と右側の軸で、異なる注釈がついたメジャーを持たせます。

Step1: パラメータの作成
パラメータで、2通りの注釈が選べるようなリストを作ります。下記例の場合は、表示と非表示のリストとしました。

Step2: パラメータコントロールの表示

Step3: 計算フィールドの作成
パラメータに対応させた計算フィールドを作成します。下記例の場合は、パラメータで1が選ばれたときに[売上]が表示されるフィールドを作っています。
今回はパラメータが0のときは注釈を付けないので、元々ある[売上]のフィールドを使いますが、注釈をつけたい場合は、もう1つ同じような計算フィールドを作る必要があります。

Step4: 行列に配置
列:四半期(オーダー日)
行:合計(売上)、合計(売上(注釈表示))

Step5: 注釈をつける
「表示」にした状態で注釈を付ける。

Step6: 二重軸にする

これで、注釈のない[売上]と、注釈のある[売上(注釈表示)]を、切り替えることができます。

これは簡単に変えられるので便利ですが、注釈を二重軸で実現しているため、二重軸でチャートを表現しているときには使えません。。。また、3種類以上のパターンで注釈を使い分けたい場合もあるかと思います。そこで、もう1つの方法です。

☆動的な注釈2:計算フィールドを作成し、メジャーバリューを活用
片方の軸をメジャーバリューにして、そこに複数のメジャーを入れていきます。

Step1: パラメータの作成
注釈のパターンの数だけリストを作ります。ここでは、最高売上、最低売上、注釈なしの3パターンのリストを作っています。

Step2: パラメータコントロールの表示

Step3: 計算フィールドの作成
以下の計算フィールドの"1"を"2","3"に変えて、各パラメータのリストに対してそれぞれ計算フィールドを作成します。

Step4: 行列に配置
列:四半期(オーダー日)
行:メジャーバリュー、合計(利益)
メジャーバリュー:合計(売上(最高売上))、合計(売上(最低売上))、合計(売上(注釈なし))

メジャーネームとメジャーバリューについての説明はこちら。
http://tableaujpn.blogspot.jp/2015/10/mystery-of-measure-name-measure-value.html
ここでは、二重軸のチャートに対して、動的に注釈がつけられることを表すために、利益の棒グラフも二重軸として入れています。

Step5: 注釈をつける
パラメータを変更しながら、出てきたグラフに注釈をつけていきます。

すると、選択されたパラメータに対応する計算フィールドだけが表示されるので、結果的に表示させる注釈を変更できるようになります。

この方法は理解しやすいですが、計算フィールドを選択数分作成する必要があるので少し手間かもしれません。。。そこで、次の方法です。

☆動的な注釈3:詳細を使用

Step1: パラメータの作成
2番目の方法と同じパラメータを使います。

Step2: パラメータコントロールの表示

Step3: 計算フィールドの作成
作成したパラメータだけが入った計算フィールドを作成します。

Step4: 作成した計算フィールドを、合計(売上)の方のマークカードにある詳細に置く

Step5: 注釈をつける
パラメータを変更しながら、出てきたグラフに注釈をつけていきます。

これで、パラメータを変えると出てくる注釈も変わるようになります!
詳細の使い方がポイントでした!

注釈は使っていない方も多くいらっしゃると思いますが、これを機に使ってみてください:)

Nanae

ダウンロードはこちら。



参考:
オンラインヘルプ (注釈)
http://onlinehelp.tableau.com/current/pro/online/ja-jp/annotations_annotations.html
VizPainter (Dynamic Annotations)
http://vizpainter.com/89/
http://vizpainter.com/dynamic-annotations-part-2/
http://vizpainter.com/dynamic-annotations-part-3/

0 コメント:

属性を理解する(Understand the Attribute Function)

2015/11/13 18:16 Shingo 1 Comments

こんにちは、Nanaeです。

今回は、時々気になるけどスルーしがちな「属性」について理解していきたいと思います。

早速ですが、オンラインヘルプには以下のように属性が解説されています。
・グループ内のすべての行が同じ値を持つ場合にのみ、指定された式の値を返します。
・グループ内に異なる値を持つ場合、アスタリスク (*) 文字を表示します。
・NULL 値は無視されます。

すなわち、
・値が1つ=その値が表示
・値が複数="*"が表示
ということです。

計算フィールドでの属性の説明は以下の通り。
属性をしっかり理解するために、どんな処理をしているのか計算式を確認しましょう。
IF MIN([dimension]) = MAX([dimension]) THEN MIN([dimension]) ELSE “*” END

これを見れば、同じ値が入っていればその値が表示され、そうでなければ* が表示される、という説明に納得がいきますね!

さらに理解を高めるために、以下3つの例をみてみましょう。

☆例1
都道府県と市区町村の売上を棒グラフで見てみます。

この中の市区町村を属性:attr()に変えてみます・・・

すると、ほとんどが * になりました。都道府県に対して1つしか市区町村を持っていなければ市区町村名が表示され、複数の市区町村をもっていると * が表示されます。

1つ目の棒グラフでは、市区町村はディメンションなので、メジャーを市区町村でスライス(グルーピング)しています。
2つ目の棒グラフでは、市区町村は属性であり、ただラベルとして表示されているだけでスライスしているわけではないので、左側の都道府県と1対1対応していないと表示できずに* になってしまいます。
ディメンションだとデータを分けますが、属性だと分けません。属性はただのラベルです。

☆例2
出荷モード、カテゴリ、サブカテゴリを出し、出荷モードごとにサブカテゴリの売上の比率を表示させます。

その中のカテゴリを、ディメンションから属性に変更します。

すると、値が変わりました・・・!値が全体的に小さくなっています。
分かりやすいように、それぞれに対して小計を入れてみます。


1つ目のクロス集計では、カテゴリがディメンションであればカテゴリでもスライスすることになるので、出荷モード、カテゴリの中でのサブカテゴリの割合が出ます。
2つ目のクロス集計では、カテゴリが属性なのでただのラベルとなるためカテゴリでは集計されず、出荷モードの中でのサブカテゴリの割合が出ます。

☆例3
カテゴリを色分けして、年別推移の売上合計を出しています。
ここでカテゴリをラベルに入れると、右側にラベルが出てきます。ディメンションのフィールドをラベルに入れるとこのように横に出てきます。

ラベルにあるカテゴリを属性に変えます。

各プロットにカテゴリ名が出てきました。それぞれのプロット部分で、
IF MIN([カテゴリ]) = MAX([カテゴリ]) THEN MIN([カテゴリ]) ELSE “*” END
が行われているわけです。

今度は属性のサブカテゴリをラベルに追加してみます。
カテゴリの下に * が出てきました。各カテゴリに対してサブカテゴリは複数あるので表示できず、* が表示されました。

ここまではディメンションのフィールドを入れました。
次にメジャーのフィールドから、合計(売上)と属性(売上)をラベルに入れてみます。

合計(売上)は、各プロットに対応した売上の合計値が出てきます。
一方、属性(売上)は集計しておらず、各プロットに対応する全ての値が入っています。すなわち、2011年の事務用品のプロットの中には、2011年に売れた事務用品に関する全レコードの売上が入ることになるので、表示できません。よって、*で表示されるわけです。

メジャーだと、グループ内のすべての値が同じことってほとんどないですよね。
そのため属性は、ディメンションで役立ちます!!

ここで作ったワークブックはこちら



Nanae

参考:

Interworks:ATTR() - Tableau's Attribute Function Explained
https://www.interworks.com/blog/tcostello/2014/05/15/attr-tableaus-attribute-function-explained

集計
http://onlinehelp.tableau.com/current/pro/online/ja-jp/help.htm#calculations_aggregation.html?Highlight=aggregation

データの集計
http://onlinehelp.tableau.com/current/pro/online/ja-jp/help.htm#calculations_aggregation_aggregatingdata.html

マークラベル
http://onlinehelp.tableau.com/v9.1/pro/online/windows/ja-jp/help.htm#annotations_marklables.html

1 コメント: