2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WorkoutWednesday2019week09 - Remove the Scroll bar

Last updated at Posted at 2019-03-03
Screen Shot 2019-03-02 at 14.36.41.png

今週のワークアウト概要

http://www.workout-wednesday.com/2019-week-9/
xDashboard-1-1.png.pagespeed.ic.mRQ44J39qd.png
https://tabsoft.co/2GRw72Z

今週はスクロールバーの代わりに10個ずつ表示を順順に切り替えていくVIZ。ランキングに応じたグルーピングと軸の固定が肝になります。

要件

  • ダッシュボードサイズは 1000px x 600px
  • Create a visualization with bar charts that show total sales, total profit, and total quantity by city-state (See below for state abbrevation calculation). Sort by sales.
  • 合計売上、合計利益、合計数量を表す棒グラフをcity-state(州の省略形を作る計算式をこの後に記載7えるので参考に)ごとに作成し、売上でソートする。
  • cityを10個ずつのグループに分ける計算式を作る。グループの名前は「1−10」、「11−20」のようにランキングを元につける。
  • 棒グラフの長さは最大値に対する割合になるようにする。ただし軸の固定は使わない。
  • 利益にのみゼロ線を引く
  • フォントサイズは11、棒グラフの色は#ED7470
CASE [State]
WHEN "Alabama" THEN "AL"
WHEN "Alaska" THEN "AK"
WHEN "Arkansas" THEN "AR"
WHEN "Arizona" THEN "AZ"
WHEN "California" THEN "CA"
WHEN "Colorado" THEN "CO"
WHEN "Connecticut" THEN "CT"
WHEN  "Delaware" THEN "DE"
WHEN "District of Columbia" THEN "DC"
WHEN "Florida" THEN "FL"
WHEN "Georgia" THEN "GA"
WHEN "Idaho" THEN "ID"
WHEN "Illinois" THEN "IL"
WHEN "Indiana" THEN "IN"
WHEN "Iowa" THEN "IA"
WHEN "Kansas" THEN "KS"
WHEN "Kentucky" THEN "KY"
WHEN  "Louisiana" THEN "LA"
WHEN "Maine" THEN "ME"
WHEN "Maryland" THEN "MD"
WHEN "Massachusetts" THEN "MA"
WHEN "Michigan" THEN "MI"
WHEN "Minnesota" THEN "MN"
WHEN "Mississippi" THEN "MS"
WHEN "Missouri" THEN "MO"
WHEN "Montana" THEN "MT"
WHEN "Nebraska" THEN "NE"
WHEN "Nevada" THEN "NV"
WHEN "New Hampshire"	THEN "NH"
WHEN "New Jersey" THEN "NJ"
WHEN "New Mexico" THEN "NM"
WHEN "New York" THEN "NY"
WHEN "North Carolina" THEN "NC"	
WHEN "North Dakota" THEN "ND"
WHEN "Ohio" THEN "OH"
WHEN "Oklahoma" THEN "OK"	
WHEN "Oregon" THEN "OR"
WHEN "Pennsylvania" THEN "PA"
WHEN "Rhode Island" THEN "RI"
WHEN "South Carolina" THEN "SC"
WHEN "South Dakota" THEN "SD"
WHEN "Tennessee" THEN "TN"
WHEN "Texas" THEN "TX"
WHEN "Utah" THEN "UT"
WHEN "Vermont" THEN "VT"
WHEN "Virginia" THEN "VA"
WHEN "Washington" THEN "WA"
WHEN "West Virginia" THEN "WV"
WHEN "Wisconsin" THEN "WI"
WHEN "Wyoming" THEN "WY"
END

データ

サンプルスーパーストア

シェア

終わったらTwitterで「#WorkoutWednesday2019」タグをつけてシェアしよう。
@AnnUJackson, @LukeStanke, @lorna_eden, @curtisharris_をタグづけることも忘れずに。

レシピ

City-Stateフィールドの作成

今期は「[都市名] ,[州名(省略形)]」という形式で都市の名前を表示する必要があ流ようです。そこで、まずは上述の計算式で省略形の州名フィールドを作ります。
Screen Shot 2019-03-03 at 6.01.42.png

次にCityと今作ったState(Abbr)をくっつけたフィールドを作ります。Tableauの機能で結合フィールドを作る方法もあるのですが、あとあと困ったことになるので今回はこれで作ります。時間があればその辺もまとめます。
Screen Shot 2019-03-03 at 7.13.00.png

まずは基本的なVIZを作成

「City-State」をRowsに、「Sales」、「Profit」、「Quantity」をColumnsに入れます。スクショの赤字のボタンを押せばSalesの順にソートされます。
Screen Shot 2019-03-03 at 7.09.49.png

ランキンググループの作成

City-Stateを「1-10」、「11-20」、「21-30」...といったグループに分ける必要があるのでそれ用のフィールドを作ります。最初はかっこいい方法が浮かばなくて以下のようなフィールドを頑張って作りました。
Screen Shot 2019-03-03 at 6.45.57.png

しかしINDEX()関数を使うとこんな面倒からは解放されます。ということをMuku Inoyamaさんのブックで勉強しました。
https://public.tableau.com/profile/miki.inoyama#!/vizhome/WOW_W0920190227CanYouRemovetheScrollBar/1

INDEX()関数は表計算関数の一つで、表計算における計算の順序を返してくれる関数です。small multiple(例えばこんなの)を作るときなんかにもとても便利な関数です。

丁寧に見ていきます。

Rowsに「City-State」を入れて、Columnsをダブルクリックして直接「INDEX()」と入れて見てください。Text Labelも表示すると以下の画面になります。これはCity-Stateの並び順に番号がついている状態です。
Screen Shot 2019-03-03 at 7.14.46.png

INDEX()のピルを右クリックしてEdit Table Calculationを選択。
Screen Shot 2019-03-03 at 7.15.17.png

するとこんな画面が出てきます。Table(down)なのでVIZ上にある全てのマークに対して上から順に番号をつけている状態です。
Screen Shot 2019-03-03 at 7.15.25.png

一度閉じてColumnsにSalesを入れてソートして見ましょう。以下の通り、並び順は変わりましたがINDEX()は表示されている順番で番号をつけているのでやはり上から順に1,2,3...とついています。この数字を利用してグループ名のフィールドを作っていきます。
Screen Shot 2019-03-03 at 7.24.29.png

作りたいのは1〜10番目の都市は「1-10」というグループ、11〜20番目の都市は「11-20」というグループ、となるようなフィールドです。ここは2段階で作ります。

まず以下のRankingGroupNumberを作成。

Screen Shot 2019-03-03 at 7.37.47.png

次にRankingGroupNumberを元にRankingGroupNameを作成。

Screen Shot 2019-03-03 at 7.38.16.png

すると以下のような感じにグループ分けを実現できます。

INDEX()の値 RankingGroupNumber RankinGroupName
1 1 1-10
2 1 1-10
3 1 1-10
... ... ...
9 1 11-20
10 1 11-20
11 11 11-20
12 11 11-20
... ... ...

より明示的なINDEX()の指定

今回はINDEX()の表計算を「Tableau(down)」のまま使いましたが、実はこのままだとSales以外のメジャーでソートしたりすると崩れてしまします。以下のようにすると、より明示的にCity-Stateを合計Salesの降順で並べて番号をつける、と指定することができます。
Screen Shot 2019-03-03 at 7.15.42.png

RankingGroupNameでフィルターする

VIZに選択している「RankingGroupName」の10個だけを表示するためにフィルターに「RankingGroupName」を入れます。

適当に「1-10」を選んでおくといいと思います。

Screen Shot 2019-03-03 at 21.06.58.png

右クリックして「Show Filter」を選択。
Screen Shot 2019-03-03 at 21.07.08.png

右側にFilterが表示されます。これを指定されている形式に変えていきます。
Screen Shot 2019-03-03 at 21.07.08.png

フィルターの右上にある▼をクリックし「Single Value(slider)」を選択。

Screen Shot 2019-03-03 at 21.10.49.png

同様にCustomizeにて「Show "All" Value」と「Show slider」のチェックを外す。

Screen Shot 2019-03-03 at 21.11.03.png

加えて、「Edit Title」にてタイトルを「Select cities by rank.」に変更。

Screen Shot 2019-03-03 at 21.13.32.png Screen Shot 2019-03-03 at 21.13.49.png

するとこんな感じに指定されている形式まで持っていことができました。

Screen Shot 2019-03-03 at 21.13.53.png

微修正

色の変更

AllにてColorをクリックし「More colors...」を選択。
Screen Shot 2019-03-03 at 21.15.31.png

「RGB Sliders」にて16進数での色指定が可能なので指定されている「ED7470」を入れてOK。
Screen Shot 2019-03-03 at 21.15.52.png

ヘッダの除去

軸を右クリックして「Show Header」のチェックを外す。
Screen Shot 2019-03-03 at 21.18.37.png

グラフ上の軸を除去

グラフ上で適当な場所を右クリックして「Format」を選択。日本語だと「書式」。
Screen Shot 2019-03-03 at 21.19.53.png

「Lines」の設定にて「Sheet」の「Zero Lines」をNoneに。

Screen Shot 2019-03-03 at 21.20.47.png

同様に「Columns」の「Grid Lines」もNoneに。

Screen Shot 2019-03-03 at 21.22.15.png

「Borders」設定にて、「Columns」の「Columns Divider」の「Pane」をNoneに。

Screen Shot 2019-03-03 at 21.23.21.png

ラベルを表示、書式も編集

「Show mark labels」をチェック。
Screen Shot 2019-03-03 at 21.34.40.png

書式にて「SUM(Sales)」を選択。
Screen Shot 2019-03-03 at 21.35.30.png

「Pane」の「Defaul」の「Numbers」で書式を以下のように設定。
Screen Shot 2019-03-03 at 21.35.47.png

他のメジャーについても同様に書式を変更する。

軸の範囲の固定

ここが今回の二つ目の肝。ここではリファレンスラインを使って軸の範囲を固定させます。現状ではランキングが下がっていくごとに軸の範囲が小さくなっていくと思います。これを1-10グループの時と同じにしておく作業です。

各メジャーにおける最大値をリファレンスラインとして設置することで実現します。そのためには以下の計算式を作る必要があります。「Profit」だけはマイナスの値もあるので、「Min Profit axis」を作っています。

Screen Shot 2019-03-03 at 21.28.23.png Screen Shot 2019-03-03 at 21.29.41.png Screen Shot 2019-03-03 at 21.28.53.png Screen Shot 2019-03-03 at 21.29.11.png

それらを各メジャーの「Detail」に入れてリファレンスラインとして追加します。リファレンスラインは「Label」と「Line」をNoneにすることで表示上、見えないようにしています。

Screen Shot 2019-03-03 at 21.31.35.png Screen Shot 2019-03-03 at 21.31.54.png

他のメジャーも同様にリファレンスラインを追加して軸を固定します。

Profitのみゼロラインを作る

これもリファレンスラインで作ります。Profitだけ以下のようにリファレンスラインを追加します。

Screen Shot 2019-03-03 at 21.39.22.png

ダッシュボードを作成

以下のレイアウトで組むといい感じになります(左下のItem hierarchyを参考にしてください)。

Screen Shot 2019-03-03 at 21.45.10.png

終わりに

スクロールバーは長すぎると今どこにいるのか見失いがちなので、とても良い表現方法の一つだと思う。またリファレンスラインで軸の範囲を固定したりゼロラインを作るというのは新鮮な使い方で目から鱗だった。やっぱりWorkoutWednesdayは勉強になる。
今回はかなり細かくまとめたけれど細か過ぎて時間かかり過ぎなので、次はもう少しポイント絞って簡素にまとめてみたいと思う。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?