標籤:

Tableau 地圖 | 多顏色序列地圖

今天來聊的話題是根據 Jonathan Drummey 如下這篇文章而編寫

原文:Two Sequential Color Palettes on the Same Map

地圖是數據可視化的特色,在tableau中製作地圖是極其方便的

第一步 設置數據為地理信息欄位

第二步 雙擊「City」欄位

第三步,添加度量信息

即可形成一個基本的地圖報表

如果在優化一些會更抓眼球,比如:

我們回來繼續說今天的標題:多顏色序列的「地圖」

看到上邊的幾個案例,都有一個共同點:

顏色的填充是單一顏色的漸變,或灰度

看過 度量與維度後(在這裡)你應該知道

可以拖進mark的有如下幾種

連續的度量

離散的度量

連續的維度

離散的維度

只有連續的度量設計構成顏色的序列

所以如果有多重計量範圍,多個類別,肯定要有多個維度

連續的度量,它通過顏色實現標記的功能,是顏色的序列

話說Jonathan 2014年看到了紐約時報的這個案例(不貼連接了,在牆外看不到),標題是:The Most Detailed Maps You』ll See From the Midterm Elections,就是關於選票的。

截圖如下:

他當時就想著,如何使用tableau去複製這個效果。

我們來分析一下:

對於紐約時報這幾幅圖,使用了3種顏色

藍色代表民主黨

紅色代表共和黨

紫色代表趨於50:50的均衡地區

那麼,在tableau中,需要考慮使用維度作為區分顏色的標誌物 (維度)

三種維度分別使用紅色藍色紫色,然後再使用度量去渲染顏色序列(該數據是人口數),

為了簡化操作,在tableau中只使用2個維度,即2個顏色序列

大致結果如下圖所示:

數據則使用自帶的超市數據來模擬製作。

對於製作的原則,有下面幾項需要聲明:

  1. 既然是雙顏色序列,需要做到互相均勻對稱。當讀者對兩種顏色做對比時,才不會有誤導

  2. 顏色序列不能手動設置,一定要隨著數據的變化而自動更新,比如調用篩選器的時候
  3. 有顏色分布的圖表一定要有圖例,而且要準確區分和描述。
  4. 顏色的配色方案要靈活多變,看起來要舒服

按照常規方法,大致可以歸納6種實現方法:

第1種

方法一其實是偽雙色,因為是將藍色轉換為負值,紅色為正值,然後放置在同一個顏色序列中,只不過設置成對色來模仿雙顏色序列

缺點是顏色並不是對稱的,而且因為本身是單序列,所以圖例也是一個軸,如果為了展現,還需要手動模擬製作一個雙色系的圖例

第2種

方法二使用自定義色系(附贈定製色系的方法)的方法,這種方法和方法一類似,通過自定義色系解決了不對稱分布的問題,

也能同事滿足動態變化的數據,因為手動設置正負的色軸是對稱分布在0%到100%的。

問題是,需要更多的時間花在定製色繫上,而且只要是偽色系就需要手動去製作圖例

第3種

方法三終於不是偽色系了,通過引入雙軸,可以使用雙色了。實現方法,首先是兩個類別的州進行分組,那麼就生成了兩個區分的類別,而這隻設置兩種顏色,並不能設置深淺hue,飽和度,將顏色設置為半透明,將度量設置為灰度變化,兩個圖層嵌套一起形成如下圖的呈現

缺點:顏色太難看了

第4種

使用離散的度量作為顏色標記,通過設定顏色範圍,優勢是,圖例解決了,手工將顏色付給對應的數值範圍,

問題是,顏色只是局限在出現的數據中,而實際的分布需要對稱,那麼有時候不是全部數據都有顯示。按照本圖的數據,紅色分布集中在0-5,所以沒有6-8的。最主要的是,如果篩選器使數據變動,那麼無法自動變換。

第5種

具有計算欄位的雙軸地圖 被用來改變每個mark欄中的詳細級別 以便返回局喲與地理屬性的紅色和藍色的州的狀態

不同的州設置不同的顏色,我們將特定的計算欄位關聯到詳細界別上,可以通過詳細級別的變化改變雙軸地圖的變化

這是越來越接近,因為它讓我們完全獨立的調色板,可以有我們想要的顏色。

問題:為了保持每個顏色調色板的陰影相同,顏色斜坡必須固定為10%,因此如果數據更改,斜坡將需要編輯以反映數據,否則可能會產生誤導

第6種

方法6其實和5很類似了

具有用於通過返回具有分配的地理角色的紅色狀態或藍色狀態來改變每個標記卡的細節水平的計算的雙軸映射,最大的不同是,可以為每個標記卡提供單獨的度量。

此外,不是地理的重複狀態維度用於增加詳細程度,因此顏色計算可以具有相同的斜坡值

問題:很多複雜的設置,可能會有複雜的和龐大的查詢(當我們只看50個州這不是一個大問題),但它是完全動態的,並滿足所有的要求。

下邊來說具體數說第六種方法是怎麼實現的

Part 1:構建不同detail層級的雙軸視圖

因為是使用「super store」數據模擬。所以需要手動創建特定的分組,對現有的50個州做group

分成兩組

Red 和 Blue

創建一個計算欄位

IF [State (group)] = Red THEN [State] END.

即,Red則返回州名字,其他情況則返回Null

將紅色/藍色國家維度分配地理角色

在詳細級別上,創建帶有紅色狀態維的填充地圖。

按住Ctrl,拖曳Latitude到Row上,用以生成新的軸,同事生成了新的Mark標記欄

現有的Mark標記欄是

全部

Latitude 1

Latitude 2

點擊右側的Latitude,可以激活對應的Mark的標記欄

將「藍色國家/地區」替換「紅色國家/地區」。此時的視圖應該是這樣的:

我們在這裡做的是創建一個具有兩個不同層次細節的雙軸地圖,所以我們可以單獨添加%total到視圖中,而且互相不影響。

上邊的軸,對應的級別是,紅色的州,其包括紅色組中的州下邊的軸,對應的級別是,藍色的州,其包括藍色組中的州

現在,在這一點上,我們可以將兩個標記卡上的單獨百分比的總度量分別與計算使用在紅色/藍色狀態下,並將它們放在顏色架上。這是我們修正顏色之前的方法#5:

到此,雙軸構建完畢。

<有一些語言描述不通順,而且缺少更詳細的圖片解釋,待改日更新>

但這有兩個問題

每個標記卡具有Null值 (對於紅色地圖上的藍色狀態和藍色地圖上的紅色狀態

它捲起所有這些相反的狀態,並且最終是Total的最大的%,並且影響顏色斜坡,所以顏色範圍不如它可能是大

注意最大的藍色值是36.88%,但地圖是完全淺藍色

我們可以通過使用右下角的null /未知標記指示器上的過濾器選項解決這個問題,但是...

兩個顏色斜坡在亮度/暗度方面在頂端不是對稱的,並且在這裡使它們對稱的唯一方式是手動地固定顏色斜坡,這然後不滿足使視圖自動更新的要求。

雖然可以手動將顏色斜坡的底端固定為0,使其對稱,在頂端,我們真的需要使總度量的百分比返回相同的值,這樣我們不必手動修復顏色斜坡。

將在第2部分中解決

Part 2: 增加詳細級別但不包括可見標記

繼續解釋如何解決Part 1結束時遺留的問題

1 複製州維度的欄位

2 把這個副本的欄位的地理角色移除

更新記錄:

2016-12-13 發布

2016-12-14 補充方法6的操作步驟

<未完待續>

Peace!


推薦閱讀:

如何學習tableau?
Tableau | Dashboard Design 1

TAG:TABLEAU |