Tableauで不連続で色分けしつつ連続でグラデーションを作る方法

初めまして。Qiitaには初めての投稿となります。
SES企業でBIエンジニアをしておりますRiekoと申します。
普段ブログはnoteで投稿（noteは[こちら](https://note.com/rieko952/)）しておりまが、
今回は普段読み専のQiitaから初投稿です。
Tableau歴は2年なのですが、WorkoutWednesdayや実務で得た経験からTableauの「色」についてお話したいと思います。
私はJapan Tableau User Groupで初心者向けの「[Tableau tuneup](https://techplay.jp/event/961778)」を運営しているので、初心者やTab歴が浅い方にわかりやすい解説・説明をモットーにしております。

## Tableauにおける「色」の連続と不連続について
Tableauの「色」には、連続と不連続があります。
「連続」「不連続」という言い方が正しいかは分かりませんが、一旦この言葉で定義します。

不連続（categorical）の場合、ピルとマークカードの「色」に入れるとカラーパレットになります。
例えばサンプルスーパーストアの「カテゴリ」を色に入れて、「色の編集」を押すと、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3666377/b105ed62-a4a5-e392-f4dc-c525954e7cca.png)
このように、Tableauが「データ項目ごとにカラーパレットから1色ずつ選んでね！」と言ってくれます。

では、連続である「売上」を色に入れるとどうなるでしょうか？やってみましょう。
「売上」を色に入れて「色の編集」を押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3666377/aaf6f222-94b1-8d40-e47d-dde3b23a736b.png)
すると、今度はTableauが、「売上の数値変化をグラデーションにするので、グラデーションのパレットを選んでね！」と言ってくれます。

このように、不連続であれば単一の色を、連続であればグラデーションの色が設定されるようになっています。

## 連続と不連続の色を共存させるとは？

本記事のタイトルにあるように、「不連続で色分けしつつ連続でグラデーションを作る」とはどういうことでしょうか？
百聞は一見に如かず。できあがりはこんな感じになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3666377/98073a1c-3a8c-12c7-48b6-3e444faf0121.png)
「家具」は青系統、「家電」はオレンジ系統、「事務用品」は緑系統と彩度がカテゴリによって異なると同時に、売上の値によってもグラデーションがかかっている**ように見え**ます。

そう、「ように見える」というのがポイントです。
実はこれ、両方不連続です。
ではそのやり方を見ていきましょう。

## 連続・不連続共存の方法

1. 当然ですが、「カテゴリ」は不連続のままでOK。
2. 「売上」を不連続に変換
3. 「売上」を「詳細」に置く
4. 「売上」を「詳細」から「色」に変更
→こうすることで「カテゴリ」と「売上」の組み合わせで色が設定される
ここまででマークカードの設定はこうなっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3666377/4e4557b0-4e04-b31f-c6c8-aa2253f30144.png)
「色」には複数のピルを入れることができるというのは、知らない方もいるのではないでしょうか？
「色」に直接入れると上書きされてしまうので、「詳細」に入れた後色に変更するのがポイントです。

ここで、「色の編集」を押すとこのようになっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3666377/0a86521e-8cb8-3936-1363-891e9cc486f9.png)
「売上」が少ない方が、色が濃くなってしまっています。
なので、これを反転させる必要があります。
そのためには
 - 家具→青系統
 - 家電→オレンジ系統
 - 事務用品→緑系統
 のカラーパレットを使用しましょう。
 
 1. 「家具」のデータ項目をすべて選択します。
 （画像でいうと「家具、￥7M」を選択した後、shiftキーを押しながら、「家具、￥30M」を選択します。）
 2. 「カラーパレットの選択」で「青」を選ぶ
 3. 「パレットの割り当て」を押下
 すると、「家具」の売上が多い順から濃い色に割り当てられます。

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3666377/5d43b875-e197-958c-5d8c-6f31a8eb53ac.png)

これを、「家電」「事務用品」でも繰り返します。

そして、出来上がったVizがこちら。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3666377/3dd58e85-eafe-c26c-972b-a3479d94eaf8.png)

見事、売上が多い順にグラデーションになっていますね。

ただ、このやり方には注意が必要です

## この方法の注意点

#### フィルター等動的な変更に耐えられない
フィルターで絞り込むと当然売上が変わります。
この方法だと売上の単一の値ごとに静的に色が割り当てられているので、
売上が変わると色も変わります。
なので、「思てたんと違う！」色があらわれます。

#### 希望の色を割り当てるのがかなりめんどくさい
今回はTableauデフォルトのカラーパレットを使用しましたが、
どうしても「#002fff」を使いたいんや！みたいなこともありますよね。
その場合は以下のステップを踏みます。
1. 使いたい色を基準に、そこからだんだん薄くなる色のカラーコードを必要な分だけみつける
2. 1. のカラーコードを「マイTableauリポジトリ」の「Preferences.tps」に読み込ませる

この場合、2. はともかく1.が超絶めんどくさいです。
「必要な分」のカラーコードといっても一体何色分のグラデーションが必要なのかは未知数です。
筆者は実際これを実務でやりましたがフィルターを変えるうちにもちろん色が足りなくなるので却下となりました。

以上のことから、あまりおすすめしないのですが、フィルターやパラメーターのない、静的なVizならば使えるのではないかと思います！

# おわりに

いかがでしたでしょうか？
このTipsは[WorkoutWednesday2024 Week20](https://workout-wednesday.com/2024w20tab/)及び、この問題に対する[Donna Colesさんの解説](https://donnacoles.home.blog/2024/05/17/can-you-combine-categorical-sequential-colours-in-the-same-chart/)によって学びました。
WorkoutWednesdayは、お題のVizを再現する、世界的なTableauチャレンジ問題です。
自身の力で最後まで解けなくても、Donnaさんによる解説を見て再現するだけでとても勉強になるので、ぜひチャレンジしてみてください。（実際私も完走できる回はほとんどなく、いつもDonnaさんの解説で学んでいます）

最後までお読みいただきありがとうございました！