POINT圖表競賽6/10這一期的數據來自MakeoverMonday Week24 Sleepless in America? 數據下載地址:data.world

Tableau Public 工作簿地址

數據還是比較簡單的,可以先刪除不必要的列【Period】【Activity】(【Link】是添加的輔助列,用來進行表連接) 最後剩下年份、日期類型、年齡段、性別四個維度,所以主要就是圍繞這四個維度展開。第一版長下面這樣,將年份、日期類型、年齡段三個維度都放到一個圖表裡比較了。

可以明顯的看到工作日和假期之間的差距;

中間的灰色曲線代表隨時間發展,睡眠時長的變化;

通過顏色來區分各個年齡段之間,通過點選圖例可以動態顯示不同年齡段的平均值; 可以發現目前各個年齡段之間呈現的差距還是比較明顯的,這是通過操縱坐標軸實現的,雖然通過標記平均值參考線避免了誤解,但依然覺得這不是最佳的選擇。 直到看到一個小夥伴用了環狀條形圖,發現用它來做年齡段的比較,真的再合適不過了,之前一直沒有碰到合適的數據用Tableau製作環狀條形圖,機不可失,果斷重新做一版。。。

四個維度四張圖,還是能夠比較明顯得呈現差異了

關於如何使用Tableau創建環狀條形圖

回想一下之前做環形圖最基本的兩點,確定每個點的半徑R和坐標(X,Y)

還需要一個輔助列【Point】其值為0~360,也就是對應圓上的360個點的角度
  • 這裡的R是什麼? 按照不同年齡段,每個年齡段設置一個半徑

    IF [Age Group]=15 to 24 years THEN 7

    ELSEIF [Age Group]=25 to 34 years THEN 6 ELSEIF [Age Group]=35 to 44 years THEN 5 ELSEIF [Age Group]=45 to 54 years THEN 4

    ELSEIF [Age Group]=55 to 64 years THEN 3

    ELSEIF [Age Group]=65 years and over THEN 2 ELSE 1 END
  • 如何確定每個點的(X,Y)? 通用公式是這樣的 X=SIN(PI / 180 * 角度) * R Y=COS(PI / 180 * 角度) * R 這裡需要修改一下,因為我們要呈現的不是完整的圓,而是要根據不同的時間佔比顯示不同的角度
  • 如何得到比例值【%size】? 想像一下一個整圓代表12個小時,那根據不同年齡段的平均睡眠時長除以12就能得到各自相應的比例值,然後我們就能用它來按比例縮放每個點的角度啦~ 這裡的【Point】就是每個點的角度值 X=SIN([Point] * PI()/180 * [%size]) * [R] Y=COS([Point] * PI()/180 * [%size]) * [R]

弄清楚這幾個點,接下去應該就不成問題啦~

動手試一試吧~

但是在做選擇的時候還是要思考一下,對於你的數據來說,它是不是最佳選擇,畢竟用Tableau做徑向圖並不是省時省力的事(雖然顏值挺高)。在Tableau Public上也有朋友提出了這樣的疑問Barchart Bakeoff: Radial or Not?

你覺得呢?


推薦閱讀:
相关文章