本系列導(dǎo)航
用Tableau畫環(huán)形圖系列(一)畫個(gè)簡(jiǎn)單的圓
用Tableau畫環(huán)形圖系列(三)畫環(huán)狀條形圖
用Tableau畫環(huán)形圖系列(四)畫圓弧圖(1)
用Tableau畫環(huán)形圖系列(五)畫圓弧圖(2)
用Tableau畫環(huán)形圖系列(六)畫柱狀環(huán)形圖
用Tableau畫環(huán)形圖系列(七)用Tableau畫尖狀環(huán)形圖[翻譯]
柱狀環(huán)形圖,英文名稱為Radial or Circular Histogram闷叉,還有叫太陽(yáng)圖的,畫出來很驚艷世剖,特別是近日在tableau public上看到一個(gè)用自帶的超市數(shù)據(jù)做的柱狀環(huán)形圖(點(diǎn)擊進(jìn)入),就順便研究了一下,現(xiàn)在就講一下思路尤仍。
如果有了前面幾節(jié)的基礎(chǔ)蕉世,再理解起來就容易多了蔼紧,建議先看以前的文章
按照這個(gè)作品的思路,每一個(gè)柱形代表一天狠轻,長(zhǎng)度代表銷售額的大小奸例,如果我們畫一個(gè)簡(jiǎn)單的條形圖,只要橫坐標(biāo)放一個(gè)時(shí)間維度,縱坐標(biāo)放一個(gè)銷售額的度量就好了查吊,tableau自動(dòng)排好谐区,很簡(jiǎn)單,這個(gè)時(shí)候你不用考慮0點(diǎn)在哪里逻卖,最高點(diǎn)在哪里宋列。
但是柱狀環(huán)形圖就是把直線的時(shí)間軸彎折成一個(gè)圓,這時(shí)候就要考慮坐標(biāo)點(diǎn)的位置如何轉(zhuǎn)換了评也,我畫好了一個(gè)(不區(qū)分國(guó)家)炼杖,以第一個(gè)時(shí)間點(diǎn)為例,就需要知道這些指標(biāo)盗迟,看起來是不是很復(fù)雜坤邪。
下面我們用一個(gè)更簡(jiǎn)單的例子給大家演示,我們畫一個(gè)表盤罚缕。因?yàn)橐粋€(gè)表盤只有12條線罩扇,很好理解。首先是構(gòu)造數(shù)據(jù)怕磨,時(shí)間是1-12喂饥,增加一個(gè)內(nèi)外環(huán)來區(qū)分,起點(diǎn)和最高點(diǎn)是通過內(nèi)外環(huán)來區(qū)分的(0代表內(nèi)環(huán)肠鲫,1代表外環(huán))员帮,數(shù)值隨便寫(但是內(nèi)外環(huán)兩部分?jǐn)?shù)據(jù)要一樣)。
然后就是復(fù)習(xí)以前知識(shí)导饲,圓上每個(gè)點(diǎn)的X坐標(biāo)=a + sin(2*PI / 360*角度) * r 捞高;Y坐標(biāo)=b + cos(2*PI / 360*角度) * r,畫同心圓a,b=0渣锦,所以X坐標(biāo)=sin(2*PI / 360*角度) * r 硝岗;Y坐標(biāo)=cos(2*PI / 360*角度) * r。
那么我們先構(gòu)建【R】= 0.6+IIF(ATTR([內(nèi)外環(huán)])= 0, 0, SUM([數(shù)值])/WINDOW_MAX(SUM([數(shù)值])))*0.4
先來說一下0.6就是一個(gè)常量袋毙,覺得內(nèi)徑的大小型檀,0.4就是外徑的最大值,可以根據(jù)需要調(diào)整(大小無所謂听盖,還是兩個(gè)數(shù)的比例重要胀溺,調(diào)整的好,做出的圖就比較漂亮)皆看。IIF(ATTR([內(nèi)外環(huán)])= 0, 0, SUM([數(shù)值])/WINDOW_MAX(SUM([數(shù)值])))的意思就是說仓坞,如果是內(nèi)環(huán),值是0腰吟,乘0.4无埃,還是0,所以內(nèi)環(huán)的半徑永遠(yuǎn)為0.6,如果是外環(huán)嫉称,根據(jù)每個(gè)數(shù)值和總和的比例確定長(zhǎng)短(外徑)侦镇,再加上內(nèi)環(huán)0.6就得到了最高點(diǎn)的半徑。
再構(gòu)建弧度【angel】=2 * PI()* (INDEX()-1) * (1/WINDOW_COUNT(COUNT([數(shù)值])))
拆解一下弧度澎埠,也就是sin里面的值(2*PI *角度/ 360),2 * PI()很好理解始藕,(INDEX()-1) * (1/WINDOW_COUNT(COUNT([數(shù)值]))) 其實(shí)就是角度/ 360蒲稳,舉個(gè)例子,因?yàn)槲覀冎挥?2條數(shù)據(jù)伍派,第一條數(shù)據(jù)算完就是(1-1)*(12)=0江耀,也就是0度,就是12點(diǎn)的位置诉植,(2-1)*(12)=1/12祥国,就是1點(diǎn)位置,以此類推晾腔。我覺得這里是最難理解的舌稀。
再構(gòu)建sin和cos就簡(jiǎn)單了
【sin】=SIN([angel])*[R]
【cos】=COS([angel])*[R]
將sin和cos拖入行列功能區(qū),取消聚合灼擂,標(biāo)記選擇線壁查,路徑用【內(nèi)外環(huán)】,時(shí)間拖入詳細(xì)信息剔应,同時(shí)要調(diào)整sin和cos的表計(jì)算睡腿,angel和R都要選擇,特定維度的時(shí)間峻贮,因?yàn)槎家鶕?jù)時(shí)間來分區(qū)和尋址席怪,計(jì)算這些值。
就得到了一個(gè)時(shí)鐘圖纤控。
好了挂捻,下面我們來對(duì)比一下原作品的計(jì)算字段和我建的計(jì)算字段的區(qū)別,這樣大家更容易自己對(duì)比理解船万。
還有一點(diǎn)需要提示细层,原作品中區(qū)分了國(guó)家,如果同一個(gè)時(shí)間點(diǎn)唬涧,兩個(gè)國(guó)家都有數(shù)據(jù)疫赎,那么肯定會(huì)有遮擋的現(xiàn)象,如果通過篩選碎节,或者突出顯示捧搞,是可以單獨(dú)顯示出來的,這個(gè)大家可以自己去做一個(gè)數(shù)據(jù),增加一個(gè)字段胎撇,比如叫項(xiàng)目介粘,自己研究一下。
此篇文章已發(fā)布到我的公眾號(hào):saodisir晚树,有興趣也可關(guān)注一下姻采。