ガントチャートを進化させてみた!! ー棒グラフと合体っー
また/まだ(?)山火事のようで、風向きによって、もやがかかったような感じにないます。少し煙っぽいにおいもするし。。。
これがなければ、澄み渡った青空で、めちゃめちゃ快適なのですが。。
さてここしばらく、どうにかして作りたいと思ってたVIZがあったんです。
折に触れてトライしてみたのですが、なかなか最後の一歩が越えられず、実現できてませんでした。
なぜ出来たのか。。。
やっぱ、アンバサダー軍団 できるわ~。この人達にコンタクトしやすくなったことはやはり大きいですね。まあ、当面アンバサダーの中では、やんちゃキャラでやって行こうと思います。。。
ガントチャートはこんな感じですね。
そして、サマリーはこんな感じ。
ダッシュボードで上下に重ねることは出来るのですが、横軸の時間を完全に同期させるのは面倒です。
ゴールは、上記2つのチャートを、ひとつのシート上で作成するか、ダッシュボードで完全に同期するかです。
与えられたデータは、こんな感じ。
[End Time - Start Time]
[End Time]-[Start Time]
終了時刻から開始時刻を引き算するCalculated Fieldを作成して、ガントのサイズに配置することでチャートが出来ます。
さて、このデータ構造だと、サマリーのグラフは描けるでしょうか?
答えはノーです。
なぜなら、Continousの横軸を持って、グラフを描こうとすると、Start Time、End Timeのどちらかを持ってくるしかありません。しかしながら、Strat Timeを軸にした場合、最後の End Time は、必ず最後の Start Time より後ろになります。
逆もまたしかり。End Timeを軸にした場合、最初の Start Timeは必ず、最初の End Timeより 前になり、どちらのケースもポイントを表示することができません。
ですので、最初にやるべきことは、きちんと最大、最小をカバーできるようにすることです。
一歩目:データ構造の変更
データピボットを使います。
以下のようなデータを得ます。
このデータ構造の方が、タブローでは格段に扱いやすいのですが、ひとつ問題がありあす。同じイベントにおける、Start Timeと End Time の関係性が失われてしまいました。イベントIDがあれば良いですが、今回はありません。
ガントチャートを描いてみる
しかしながら、元のデータがある限り、以下のようにデータソースの関係を構築すれば問題ありません。
これで、同様のガントチャートは完成です。
さらに創造性を働かせる
さて、もう一歩進めます。ぶっちゃけ、ガントチャート、扱いにくいです。
他のグラフ足せないんで。。。
そこで、ガントチャート ライク な グラフにトライしてみます。
以下のClculated Fieldを作成します。
[Data for new Chart]
if [Pivot field names]="Start Time" then 1
elseif [Pivot field names]="End Time" then -1
else 0 end
グラフを作成します。
Table Calculationiを追加します。
カテゴリの色づけ
ここで、ちょっとしたトリックです。
もともと知ってたんで、「隠しボタン」ではありませんが、「ここで使う」のを知らなかったため、大変苦労しておりました。
Show Missing Value を ON にします。
そしたら、↓
わーお。
これで、ガントチャート ライク なグラフが出来ました。
これが出来れば、サマリーを下段に追加するのは簡単です。
残りはお化粧。
これが最終形です。
最後のトリックすっ飛ばしてたせいで、ぜんぜん別のアプローチに取り組むことになり、なが~い放浪の旅となった訳です。
マジで、「知ってる」「知らない」だけの違いです。ボタン一個だけですよ~。
信じられんわ。ホンマに。。
だからこそ、継続的に学ぶことが重要ですね。。。。
今日の私は昨日より賢い!
(覚えた分だけ何か忘れてるけどな!!)
それでは、Enjoy Tableau !!
隠しボタン/隠しコマンド?! その1(いくつ出てくるか分かりません)
天気の良い日が続きます。
前回、気温のグラフを掲載しましたが、私の住んでいる地域は、本当に乾燥しています。6月~9月まで、ほとんど雨は降りません。オープンカーも屋根つけないまま駐車してあります。
気温が高い日でも、日陰にいくと常に涼しい、時には肌寒いくらいです。ただ、直射日光を浴びると、刺さるように痛いです。皮膚がんの発生率も高いんですよね。
夏の日差しはきつい、冬はときどきすっげぇ寒いとはいえ、まあ気候に関しては、概ね快適です。
さて、小ネタになりますが、ふたつほど。
- ひとつめ。隠しボタン?
既に知ってる人には何でもない情報ですが、私の周りの人も知らない人が多かったボタン。
同じデータを使用して、いろんなリクエストを受けるうちにシートがいっぱい出来てきて左右にスクロールしないと全部見れなくなってきた。そこに新たな依頼がやってきて、新しいシートを作ったら、元のシートがどこに行ったか分からない。。。。
こんな感じです。↓
右も左も、スクロールしないといけない状態。シートを追加すると。。
いちばん、右側に追加されます。で、元のシートどこよ?
マウスをシート名の上にホーバーすると、イメージがが出てきますが、まどろっこしいです。
こういう時、パワーポイントのスライド一覧表示みたいなのが欲しいです。
で、実はあるんです。すでに。
グレイアウトされて使えないようにも見えますが、ちゃんと機能します。
3つのうちの左端のアイコンをクリックします。
あるんじゃ~ん。早く言ってよ~。
ここで、シートの並べ替えが、ドラッグ&ドロップで簡単に行えます。
パワーポイントと同じです。
もうちょっと分かりやすくしてもバチはあたらないと思うのですが。。
- ふたつめ。隠しコマンド?
もうひとつ。キーボードのショートカットは、下記のようなリンクにありますが、
ここに載ってなかったのをひとつ。
Calculated Fieldを作成するときのWindow。
ちょっとフォントが小さいと思ってたのですが、
「CTRL」+「+」で拡大できました。
「CTRL」+「-」で縮小です。
で、いろいろ触ってるうちに、
CTRL+マウスころころ(ホイルっていうみたいですが)でも拡大縮小できました。
そして、さらに!
グラフのエリア上で、CTRL+マウスのホイルをころころやると。。。
Y軸の、スケールが変わります!!
軸のEditの「Fixed」って、0以外は、手打ちするの面倒だなと思っていたのですが、マウスころころで、ビジュアルで直接調整できることが分かりました!!
他にも、隠してあることあるんじゃないの?
ということで、探検の興味はつきませんね。
それでは、Enjoy Tableau !!
案外いいかも?!最高、最低気温のグラフ-こんなに違った東京と「砂漠」-
もう、8月です!
前にも書きましたが、アメリカの内陸部は非常に乾燥していて、夏も過しやすいです。
小学生並みの知見によって、海水より陸の方が熱しやすく冷めやすいので、その分早めに気温のピークがくるんだと思ってます。
そして、昼間は暑くても、夜は涼しいです。そう、それは砂漠です!
ラクダがいて、砂のいっぱいあるのだけが砂漠(Desert)ではなくて、西部劇に出てくるような「荒野」も英語では「Desert」といいます。
ということで、東京の気温と比較してみました。
着色部の下限が平均最低気温、上限が平均最高気温です。
えんじ色のアメリカ中西部は、ピークが8月ではなく7月である点、それに何より、この最高気温と最低気温との温度差!!
こうしてみるとすごい。。
夜は窓開けて寝ると風邪引きます。早朝とか寒いんで。。
さて、上記のようなグラフの書き方を投稿してみようと思います。
ベースにあるのは棒グラフです。そこに一工夫加えると、レンジを表すグラフに出来ます。
最高気温を主軸に、
最低気温を第2軸においてみます。
色が勝手に変更されたことはひとまずおいておき、同期します。
すでになんとなくそれっぽい!
2軸目の色を変更します。
さらに、
第2軸の色を「白」に変えて、さらに、主軸から Measure Nameを取り除きます。
こうなりました。
できた!!
ように見えて、実は欠陥があります。分かりますか?
最初のグラフ
最低気温の零下部分が色づけされていません。
これだとNGですね。
アプローチを変えます。
ところで、このグラフ、どっかで見たことあるタイプだと思われた方もあると思います。
そうです。いわゆるガントチャートですね。
ガントチャートを縦向きにして、棒グラフ風に描画するのです。
ガントチャートの基本は、「始点」と「長さ」です。タイムテーブルで使うことが多いですが、その場合も開始時刻と継続時間で表現します。
この場合は、
「最高気温=最低気温+温度差」という公式(笑)を使います。
先ほどのグラフから、
2軸目のチャートタイプを「ガント」にします。
で、温度差フィールドを、「サイズ」に配置します。
色付けが反対になっているので、ガントを色づけ、棒グラフを白に変更します。
出来ました!!
あとは、Labelを配置します。
最高気温を棒グラフ側に、最低気温をガント側に、それぞれ配置します。
最低気温ラベルの配置が悪いので、変更します。
できました~。
やたら同じようなグラフばっかり並べてしまいました。
気温を表すのにこのタイプを使うのは、さっき、思いついたばかりなのですが、案外いいかも知れないです。お気に召せば使ってみてください。
では、Enjoy Tableau!!
エクセルなら簡単なのに・・・ちょっとややこしい入出庫管理
先日、こんな肩書きを頂戴しました。
もちろん、嬉しいのは嬉しいのですが、周りの人達の知識・スキルがものすごいので、ちょっとついてけるかどうか不安です。
下手な解法書いて、別のアンバサダーの人あるいは一般のメンバーから「それは違うと思いま~す」とかダメ出しされるとヘコみそうです。でも頑張ります。
今回は、私が最初にコミュニティで答えを教えてもらった案件を再現します。
初期のころは、何も知らずに一人でハマりまくっていました。何時間かけたことでしょう。。。『タブローって、案外使えんなぁ。結局エクセル頼みかよ~』とか思ってたのですが、使えないのは自分だった訳ですね。
その案件というのは、以下のようなものです。
データ例
日付とSupply、Orderがありまして、計算したいのは、SupplyからOrderを差し引いた残り在庫。
ただし、当たり前ですが、Orderの方が、在庫を上回ってしまうと出庫できないので、そのときはマイナスでなく、「0」を計上する必要があります。
- エクセルだと、どうしたか
エクセルでグラフを書くとこんな感じです。
グレーの棒グラフが、その月単月のプラマイを示していて、青色が、単純な累計。
黄色が、望まれる計算を織り込んだ在庫となります。具体的な計算式は、下記のようになりますね。
タブローの話の前に、エクセルの計算式を、「=IF(F2+B3-C3>0,F2+B3-C3,0)」このようにしている方は、時間を大きく損してますからね!!
IF は面倒くさいので避けてください。0以上とか0以下とかで判定が必要な場合は、Max、Minを使いましょうね。
- タブローだと、どうするか
さて、
最初にトライしたのは、running_sum です。Table Calculationから計算式を起こせるので、それをコピーして借りてきて、0 以下を0にしました。
こうです。
まず、Supply-Orderを計算させた上で、
[Supply - Order]
[Supply]-[Order]
累計が、マイナスの時に、0 を返すようにしました。
[Cum_total (Exclude Negative) Trial]
max(0, running_sum(sum([Supply - Order]) ))
これだとうまくいきません。
こうなります(紫)。
一瞬、できたかと思うんですけど、普通の累計(茶色)の、マイナス部分が「0」に置き換わっただけです。
過去の Order をさかのぼって満たすことはできないため、実現したいのは下の赤のラインです。
再度、エクセルの計算式を見てみると、
計算に、3つのセルを使用しています。ここで、B3とC3は、タブローで参照するのは簡単です。
問題は、F2 です。
タブローの「lookup」 も 思いつきますが、前の値を参照したいのは、入力しようとしているField そのものなので、うまくいきません。
エクセルは、セルそのものを参照できるので、必要に応じて、あっちこっちのセルが参照でき、汎用性が非常に高いです。
対してタブローは、グラフ作りに特化しているため、「セル」という考え方はなく、あくまでFieldどうしの関係性で新たな数値を計算します。「計算」そのものは、はっきり言うと、超苦手です。(その代わり、グラフ性能はエクセル、メじゃないから!!)
それを補うために、Table CalculationやLODなどの関数が備えられており、ちょっと覚えて使いこなせるようになれば、かなりの要求は満たせるようになります。
とは言うものの、(これはエクセルでも同じですが)技を「知っている」か「知っていないか」で同じ仕事を完了するのにかかる時間が、「2秒」と「2日」 とかの差になってしまうのも事実です。
ということで、そういう困った時は、コミュニティーを使います。
Yahoo 知恵袋に エクセルの質問するみたいな感じで、タブローコミュニティに質問すれば、無料、早い、丁寧 で答えが返ってきます。
私がPost したときのやり取りが下のリンクになりますが、それでもそのときは時間がかかりました。でも、何人もが親切に考えてくれて、最終的には答えに辿り着き、このコミュニティ、すげえ となった訳です。
Question regarding running total |Tableau Support Community
ちなみに日本語での質問は、Japan の コミュニティで 運用されてます。
Group: Japan |Tableau Support Community
でもグローバルサイトに日本語で質問しても、別に問題はありません。
なんか取りとめもなく、長くなってきたので、答えを。。
使うのは、たぶん使用頻度がめっちゃ少ない関数である、「previous_value」です。
この関数は、入力しているFieldそのもののテーブル内での位置を判定し、その field自身の前や後ろの数値を参照できるものです。普段はあまり使いませんが、今回のように、結果次第で判定が必要な場合には、この関数が必要です。
[Cum_total (Exclude Negative)]
max(0,(previous_value(1)+ sum([Supply]) - sum([Order])))
previous_value(1)は同じFieldのひとつ前の数字です。
結果的には、エクセルの計算式に近いものになりますが、セルを相対参照するのではなく、Fieldの関係性を意識することになります。
Table Calculationは、いくつかシリーズにしないと難しそうなので、ちょっと考えて見ます。
それでは、Enjoy Tableau!
試してみた!データのピボット。ー何列まで可能なの?ー
ポケモン GO! 大人気ですね。
うちの近くの公園でも、若者グループがスマホを片手に、入れ替わり同じあたりをうろうろしてるので、恐らくポケモン GO!をプレイ中なのだと思います。
ところで、ポケモンは、アメリカの子供たちにも大人気で、子供たちには、「アメリカで製作されたアニメ」だと思われています。うちの子供が小学校で「日本のアニメだ」といったら、「うそつけ!」と言われたと言ってました。
さて今回は、タブローの便利機能のひとつ、データのピボットについてです。
機能の詳細は、こちらのリンクで↓
で、私が何をしたいかというと、めっちゃ横に長い元データがあったとして、何列目までピボット可能なの?という調査です。
何列でしょう?
10、25、50、100、250、500、1000、2500、5000
くらいまでデータを準備してやってみました。
さて、データベースに詳しい方は、おおよそ予想がついてしまうように思いますが、答えを知る前に、予想してみてください。
使用したVersionは 9.2 です。
100列のとき
問題ありません。
250列のとき
問題ありません。
500列のとき
255列 までしか表示されません。
255 って、どこかで見たことある数字ですね。
エクセルとか、アクセスとかに限らずいろんなアプリケーションの制限になってます。
私自身、あまりシステムやデータベースの仕様には詳しくないですが、計算速度やシステム容量のバランスの問題から、2^8(2の8乗) とういうのが最大値になることは珍しくないようです。
ということで、列の制限は 255列なのですが、256でなくて、255 ということは。。。
Headerの数を増やして調査してみます。
Header 8列 + データ255列の場合
248 が最大でした。
やはり、Header 列+データ列の合計で制限がかかります。
行の制限
行の数も増やして10000 程度まで試してみましたが、こちらは、機能的には制限がなさそうです。
ただし、列x行でデータ自身の数が増えていくと、反応スピードは落ちてきます。
ということで、答えは、
Header 列+データ列の合計が 256列まで可能です。
それでは、Enjoy Tableau!
出でよゼロ! -Nullをゼロに置き換える- その2(全部で2)
冒頭に、「まくら」がないことに淋しさを感じたので。足してみます。コラムの内容とは全く関係ないですが。。
私の暮らすアメリカの内陸部は、まあ非常に乾燥していて、夏は気持ちがいいのですが、乾燥している分、山火事が多いです。2週間ほど前にも大きなのがあったところなのに、昨日その近くで、また山火事がありました。山火事専門の消防士さんたちがいるのですが、大きな危険を伴う彼らのお仕事に感謝です。
今回は、前回より少し複雑なケースです。
前回のオプション1からスタートです。
上記の各日付に、Customer Segment を追加してみます。
↑ 問題なしです。
さらに、Colorに、"Product Container"を追加してみます。↓
最下段のグラフでおかしな線が表示されています。↓
Measure の ピルを "sales(ZN)" に変えても同様です。↓
バックグラウンドを知るために、クロスタブでチェックしてみます。
グラフをクロスタブにするのは、下記のようにシートを複製することで簡単に実現できます。
多くの空白、つまり"Null" が見られます。↓
ゼロと空白が混在しているのは、簡単に言うと、下記のような状況に依存します。↓
同じ、Consumer x Medium Box の枠ですが、Furnitureは、Null、Office Supplyはゼロが入っています。
横方向にテーブルを見渡したとき、Office Supplyのこのカテゴリにはどこかに数字があるのですが、Furnitureにはどこにもないという状況になっています。
さて、どうすれば良いかというと。。。
Calculated FieldのFormulaを別のものに変更します。
[Sales (ZN,lookup)]
zn(lookup(sum([Sales]),0))
znとlookup を両方使います。
lookupは Table Calculationで、表のFormatに依存して答えを返す関数です。
「0」のところが、例えば「2」であれば、2つ右、あるいは2つ下。
「-2」であれば、2つ左、あるいは2つ上のセルの内容を返します。
この場合、あえて「0」を用いることで、便宜的に、同じセルの内容を一旦計算させて返してくるというアプローチを用いています。
うまくいきました!!
クロスタブで確認すると、全ての欄に「ゼロ」が入っています。
ただし、注意点があります。
Table Calculationには限界があり、これ以上複雑になると、つまりDimensioinが増え、それがColumnとRowに両方入ってくると、対応できなくなります。(例) ↓
それでは、Enjoy Tableau !!
出でよゼロ! -Nullをゼロに置き換える- その1(全部で2、たぶん)
今回は、Nullの扱い方について。
このようなデータのとき、空白のところにはデータ自身が存在しません。
「ゼロ」とは明らかに違う訳です。
が、場合によっては、Nullをゼロ同様に扱いたいこともあります。
具体的にいきましょう。
まずは、棒グラフを書いてみます。
問題ありません。次に、エリアチャートを書いてみます。
ちょっと期待してたのと違います。
中段はよいとして、上段下段は問題です。中段は、もとのテーブルを見ても、もともとNullの項目がありません。ですので、Nullが含まれているときにチャートが分断されているのが分かります。
これを見栄えよくします。
エリアグラフで面を接続する-1
一つ目の方法は、Missing Dataを繋ぐ方法です。
まず、Formatを選択します。Windowを表示させるだけなので、選択は何でもよいです。
Side Barに Formatが表示されます。
Fieldから、[sum(sales)]を選択
いちばん下の、Marksをドロップダウンから選択します。
Hide(Connect Lines)を選択してみると、
こうなりました。繋がったのですが、何か違います。
この選択だと、Null値を飛び越えて、データのあるポイント同士を繋げています。
このパターンが必要なケースはこれでよいですが、今回は、Nullをゼロで表示させることが目標です。
別のオプションを選択します。
これだと。。。
期待通りにできました!!
エリアグラフで面を接続する-2
もうひとつの方法を挙げます。
先ほどは、グラフの表示設定で対応しましたが、セルの中身そのものを、「Null」から「ゼロ」に置き換える方法です。
[Sales (ZN)]
zn(sum([Sales]))
ZNは、Nullのときはゼロを返すという関数です。そのままですね。ただし、
zn([Sales])
のような使い方はできません。それだと、NullはNullのままです。
これをグラフにしてみましょう。
できました~。
シンプルなケースは上記の対応でOKです。
しか~し、上記2つのやり方で、問題が出るケースもあるので~す。
それについては、次回。。
それでは、Enjoy Tableau!!
イライラする前に -フィルタの反応スピードを改善するー
今日は、簡単な作業ノウハウを。。
と言っても、何度も質問を受けたので、ニーズはそれなりにあるように思います。
データフィルタの反応速度に関してです。
私自身も、正直「遅い!!!」と何度も思います。
特に不満を感じるのが、あるFieldにフィルタをかけて、複数のアイテムを抽出する際、
例えば、AAA,BBB,CCC,DDD の4つのアイテムがあったとしましょう。
最初、AAA,BBBでフィルタをかけていて、これをCCC,DDD にフィルタを設定し直したいとき、順番に行うと、以下のような手順になります。
- 初期VIZ (対象1,2選択済み)
- フィルタ「全部表示」選択
- フィルタ「全部非表示」選択
- 「対象3」を選択
- 「対象4」をフィルタに追加
データ、およびフィルタ項目が少なければ大した問題にはなりませんが、大きめのデータを取り扱う場合、もし、一回一回のフィルタ変更に3秒かかったとすると、上記のフィルタ変更だけで、12秒以上かかることになります。
途中で空白のスクリーンが現れたりして、ちょっとストレスフル。
それに思考を中断されている感じが大きいです。
これは、タブローのポリシーの根幹に関わる問題では ないですかっ!!
- それでは、改善策についての説明です。
ひとつめのノウハウ - CTRLを使う-
選択肢が、2~3個でなく、例えば5以上の項目をフィルタしたい時など、一つ一つチェックボックスで選択するのでなく、Ctrlキーを使用して、複数同時選択できます。
そのまま、スペースキーを押下すると、薄くハイライトされた項目のフィルタ、アンフィルタが一括で可能です。
これだと、最後のふたつのステップが、一括で可能です。
3秒ゲイン!
ふたつめの ノウハウ - フィルタのカスタマイズ-
フィルタのオン・オフを A,B 選択から C,D選択など、一旦アンフィルタして、別の項目をフィルタしたい時の作業を軽減します。
フィルタWindowの右上の下向き矢印を選択し、
カスタマイズ==> Show Apply Button とクリックします。
何かが変わりました。
フィルタ項目の最下部に、Apply/Cancel ボタンが現れました。
この機能を使用すれば、複数の項目間のオン・オフを切り替えても、変更は即時に反映されることはありません。"Apply" ボタンをクリックしたときに、新たな選択項目のフィルタが一括適用されます。
"Cancel"をクリックすれば、もともとの選択項目がフィルタされた状態に戻ります。
ただし、注意点があります。
”Apply”をクリックしないと、表示に反映されないので、スクリーン上はフィルタされたっ項目と、グラフのビューがずれている状態になります。
フィルタ項目のFieldがグラフ上に表示されていれば問題ないですが、表示されておらず、データの上でだけフィルタされている場合、判断に間違いが起こる可能性があるので要注意です。
ただし、冒頭に書いた、ストレスフルな反応速度の遅さは、こちらで解消できることと思います。
6秒ゲイン !!
それでは、Enjoy Tableau !
オリンピック、おそるべし XX県! 驚きの金メダル率
もうちょっとタイル地図を使ってみたくなり、別のを作ってみました。
高校野球とか、大臣出身地とかでもそうですけど、自分の出身県の成績とかランキングって何か気になってしまいますよね。。
ちょうど、タブローではオリンピックねたが扱われるようになって来てるので、今回は、都道府県出身者別、メダル獲得数を作ってみました。
大して意味はないといえば意味はないのですが、私としては結構、驚きの結果が。。
先に簡単なグラフの作り方
正解だけ気になる方は、一番下まで一気に移動願います。。。
作り方ですが、各県にColumn(列)と Row(行)の番号を割り振って配置するだけです。少し前に、カレンダーでやったのと基本的に同じやり方です。
カレンダーでは、なるべく「IF」使いたくなかったですけど、今回は特に位置関係と都道府県のコードには関連がないので、IF 的要素を使います。
が、IF ではなく、「Case+When」 を使います。
「IF」よりも、見た目が整理されています。
さて、公開してあるタイル地図に用いた配置は以下の通りです。
[Row ID]
case [Pref Code Int]
when 1 then 1
when 2 then 2
when 3 then 3
when 4 then 4
when 5 then 3
when 6 then 4
when 7 then 5
when 8 then 6
when 9 then 6
when 10 then 6
when 11 then 7
when 12 then 7
when 13 then 8
when 14 then 8
when 15 then 5
when 16 then 6
when 17 then 5
when 18 then 6
when 19 then 7
when 20 then 7
when 21 then 6
when 22 then 8
when 23 then 7
when 24 then 8
when 25 then 7
when 26 then 7
when 27 then 8
when 28 then 7
when 29 then 8
when 30 then 9
when 31 then 7
when 32 then 7
when 33 then 8
when 34 then 8
when 35 then 8
when 36 then 11
when 37 then 10
when 38 then 10
when 39 then 11
when 40 then 9
when 41 then 9
when 42 then 9
when 43 then 10
when 44 then 10
when 45 then 11
when 46 then 11
when 47 then 12
else 12
end
[Column ID]
case [Pref Code Int]
when 1 then -1
when 2 then -2
when 3 then -2
when 4 then -2
when 5 then -3
when 6 then -3
when 7 then -2
when 8 then -1
when 9 then -2
when 10 then -3
when 11 then -2
when 12 then -1
when 13 then -2
when 14 then -3
when 15 then -3
when 16 then -4
when 17 then -5
when 18 then -6
when 19 then -3
when 20 then -4
when 21 then -5
when 22 then -4
when 23 then -5
when 24 then -6
when 25 then -6
when 26 then -7
when 27 then -8
when 28 then -8
when 29 then -7
when 30 then -7
when 31 then -9
when 32 then -10
when 33 then -9
when 34 then -10
when 35 then -11
when 36 then -9
when 37 then -9
when 38 then -10
when 39 then -10
when 40 then -13
when 41 then -14
when 42 then -15
when 43 then -14
when 44 then -13
when 45 then -13
when 46 then -14
when 47 then -15
else -1
end
Column でマイナスを使っているのは、基本設定は上から下、左から右にソートされるので、沖縄が 1 になるようにしても良いのですが、少し問題が。。
都道府県コードは北海道から順につまり、北から南、東から西に順番がつけられています。ですので、上から下、左から右 という順番は、少なくとも日本の都道府県コードとマッチングさせるには、扱いにくいものとなります。
ですので、マイナスを頭につけることで、絶対値が小さい都道府県ほど右(東)であるという認識が持てるようにしています。
あとは、今回はデータに、どの都道府県にもマッチしないアイテムが入っていましたので、それらは左下、座標 「12,-1」に表示させるため、else 以下のTextを追加しています。
あとは、
都道府県の色が、全部のメダル獲得数。中の棒グラフがそれぞれのメダルの獲得数で、2軸を使うため、いくつか表示の工夫が必要です。
今回は、「銅メダル」上のみに都道府県名表示がされるように工夫しました。
さらに、メダルが「0」の県もあったので、これらは、仕方なく、Dummy Dataを追加しました。必要悪?です。
具体的には、47都道府県x金、銀、銅で合計141個のDummy Dataを追加したしています。
これにより、さらに例外回避も必要になってきましたが、詳細は省きます。
タイトル煽ってますよね?
で、どこの県よ?
ってことで、獲得したメダルが「金」ばっかりって県は3県あるのですが、山形、山梨はそれぞれ1個ずつ、それに対して、
奈良県です。
ちょっと驚きませんでしたか?
奈良県をクリックしてもらったら、下に表が出てきます。
何のことはない、柔道、野村忠宏 さんによる3連覇が利いています。しかし、その下にもう一人野村姓が。。。
テーブルの行をクリックすると、ハイパーリンクが現れるので、それをさらにクリックすると、Wiki に飛ぶようになっています。
このあたりは、Dashboard の Action という機能で実現できます。
技術的には簡単なので、タブローのHPでもすぐに見つかります。手間はかかりますが、まあまあ面白いです。
実は、野村豊和さんはお父さん、かと思ったのですが、Wiki によると、伯父様だそうです。それにしてもすごい家系ですね。
ってことで、奈良県民の皆様、(っていうか、ご本人たちはよくご存知かも?!)
大いに自慢してもらっていいと思います!!! 海はないけどな。
ダッシュボードについての説明は、
これとか、
ダッシュボードのアクションを使用したフィルターの作成 | Tableau Software
これですね。
それでは、ご自分でトライして楽しんでください。
これっすよ。作りたかったグラフ -タイルで日本地図ー
以前から気になっていて、トライしてみたかった地図グラフがありました。
似たようなのは、アメリカ版では見たことがあるのですが、これとかですね。
(画像リンク注意)
面白そうだからやってみたかったんですよ。 日本版。
トライしてみました。
こんな感じっす。
はっきり言って、これだけだと、普通の地図に、県ごとに色つければいいんです。付加価値はありません。見た目がちょっと変わってるくらいのことで。。
しか~し、こっちになると、ちょっと付加価値が出てきます。
各 県ごとのグラフが、おおよその県のロケーション上に表示されてます。
地図を簡便化するのって、失敗すると全然ダメですが、作りようによっては面白いものが出来るように思います。
何かを犠牲にしないとうまく簡便化できないので、上図で意識したのは以下のことです。
- 海岸線のつながり。
海のない県を意識しました。海のない県はどの辺も海に面していないハズ。
- 特徴的な地理条件
- 東京の位置
関東はややこしいです。(あんま知らないし)
が、海外の方は、東京の位置がずれすぎてると混乱するでしょうから、できるだけ、東京の隣接県はキープするようにしました。
ただ、海のない県を外に持ってくることはしませんでした。
結果、千葉、茨城と隣接させることはあきらめました。
やらなかったことは下記の事です。
- 県ごとに大きさを変えること
これもやろうと思えば出来るはずですが、手間のわりにあんまり付加価値高くなさそうだと思いました。だいたいの位置が分かれば十分なんで。
- 0.5 きざみの配置
6角形のタイルを配置するイメージでも作成出来ます(画像リンク注意)。
こっちの方が、正直見栄えはよいと思います。
(もう少し地理的特徴を反映させられそうです)
しかし、デメリットもいくつかあるので、採用しませんでした。
ひとつのデメリットは、二つ目のグラフのような時に、スペースのムダが増えてしまうことです。
このサイトも、ちょっと参考にさせて頂きました。
そして、
最終的に行き着いたのが、こちらになります。
作り方はそんなに難しくありませんが、次回にしようと思います。
データはこちらから。
では、ご自分でトライして楽しんでください。
もっとうまい配置があったら、ぜひ教えてください。