最近看到Tableau Public特別推薦里秩冈,有個Viz作品《Following Federer》介紹了網(wǎng)球巨星費德勒的職業(yè)生涯,這個作品中的圓形棒棒糖圖特別吸引我文留。
https://public.tableau.com/zh-cn/gallery/following-federer?tab=viz-of-the-day&type=viz-of-the-day
仔細(xì)想了一下旺韭,實現(xiàn)這個圖形并不復(fù)雜胶坠,這是我畫環(huán)形系列文章第六篇《用Tableau畫環(huán)形圖系列(六)畫柱狀環(huán)形圖》的一個變體挂谍,只要稍微修改一下,計算字段就可以實現(xiàn)了瞎饲,非常的簡單口叙。如果你沒有看過前面的文章,還請通過前面的文章復(fù)習(xí)一下基礎(chǔ)知識嗅战,這里我只是簡單介紹一下實現(xiàn)過程妄田。
建立數(shù)據(jù)集
數(shù)據(jù)集并不難俺亮,index就是一個等差數(shù)據(jù)列,這里我取的1-50(當(dāng)然也可以是時間或者其他)疟呐,value就是隨機的正負(fù)1(1往外發(fā)散脚曾,-1往內(nèi)發(fā)散),in/out區(qū)分了內(nèi)外環(huán)启具,0是內(nèi)環(huán)本讥,1是外環(huán),這里的外環(huán)指的是有圓點的那層(特別要說的是鲁冯,不管是往內(nèi)發(fā)散拷沸,還是往外發(fā)散都是外環(huán)),category為的是區(qū)分顏色薯演,我也是取的隨機的1-3撞芍。
上下兩部分,除了in/out有0和1的區(qū)別以外跨扮,其他都相同序无。
附贈一個excel隨機生成正負(fù)1的公式=(-1)^INT(RAND()*2),方便大家自己構(gòu)造數(shù)據(jù)衡创。
創(chuàng)建計算字段
- R=
IF ATTR([in/out])= 0 THEN 1
ELSEIF ATTR([in/out])= 1 then
IF ATTR([value])>0 then 1.2
ELSEif ATTR([value])<0 then 0.8
ELSE 0
END
END
Angel=2 * PI()* (INDEX()-1) * (1/WINDOW_COUNT(COUNT([value])))
Sin=SIN([Angel])*[R]
Cos=COS([Angel])*[R]
開始做圖
- 把[Sin]和[Cos]分別拖到列和行功能區(qū)帝嗡,取消聚合
- 標(biāo)記類型選擇“線”,把[in/out]拖到“路徑”
- 把[index]拖到“詳細(xì)信息”
- 右鍵[Sin]和[Cos]钧汹,表計算依據(jù)選擇[index]丈探,操作正確后,可以得到下圖
- 在列功能區(qū)復(fù)制一個[Sin]拔莱,標(biāo)記類型選擇“圓”碗降,雙軸并同步軸
- 把[in/out]拖到標(biāo)記區(qū)sin(2)里的“大小”上,就得到了下圖
- 將[category]拖到標(biāo)記區(qū)全部里的“顏色”上塘秦,務(wù)必右鍵修改為“屬性”或者“度量”(如果是維度會影響數(shù)據(jù)的詳細(xì)級別造成錯誤讼渊,修改sin和cos的表計算,也可以解決)尊剔,同時修改[category]為“離散”數(shù)據(jù)爪幻,編輯一下顏色即可得到下圖
這樣一個圓形棒棒糖圖就做好了,是不是特別簡單须误。
后面留個作業(yè)挨稿,如果想做成下圖的發(fā)散圖形,該怎么做京痢?
(提示一下奶甘,這個更簡單)
此篇文章已發(fā)布到我的公眾號:saodisir,有興趣也可關(guān)注一下