三元圖屡贺,又稱三元相圖(Ternary plot)有三個坐標(biāo)軸,它的三個坐標(biāo)軸“首尾相接”成夾角為60度的等邊三角形贝攒。“元”即成分时甚,或部分隘弊,三元圖主要用來展示不同樣本的三種成分的比例,在物理化學(xué)中比較常見荒适。三元圖數(shù)據(jù)的特點是三種成分比例的和必須為一定值(常見為1)梨熙。具體原理請參閱下面的網(wǎng)址。
參考網(wǎng)址:
https://www.cnblogs.com/freescience/p/7277487.html
https://baike.baidu.com/item/%E4%B8%89%E5%85%83%E7%9B%B8%E5%9B%BE
http://www.360doc.com/content/18/0206/00/33459258_728016964.shtml
Tableau public上有很多利用三元圖做的Viz作品刀诬,效果都非常驚艷咽扇。舉幾個例子
https://public.tableau.com/profile/ken.flerlage#!/vizhome/MostPowerfulSuperheroesTernary/Ternary
https://public.tableau.com/profile/adam.e.mccann#!/vizhome/GOTTernary/GOTTernary
以第二個作品(Adam E McCann大神的《權(quán)利游戲》)為例,簡單解釋就是每個單詞三個角色說的次數(shù)不一樣,某個單詞誰說的多质欲,那么代表這個詞的點就靠近誰树埠,比如lady這個詞,Cersei說了126次嘶伟,Daenerys說了60次怎憋,Jon說了48次,那么這個詞就更靠近Cersei九昧。
那么問題就來了:
1.怎么確定單詞更靠近誰呢绊袋?
2.怎么確定這個單詞的坐標(biāo)點的(x,y)值呢铸鹰?
那么就要知道三元圖和直角坐標(biāo)系的轉(zhuǎn)換關(guān)系
若三角形單位坐標(biāo)為100或100%癌别,以B點為直角坐標(biāo)系原點,其中某一點的坐標(biāo)(x,y)與該點組成的(A,B,C)的關(guān)系為:
A+B+C=100 或 A+B+C=100%
或
或
如何確定A蹋笼、B规个、C就成了解決問題的關(guān)鍵
下面要分三步走,因為每個人說的單詞總次數(shù)是不一樣的姓建,所以不能直接比較诞仓,就需要采用比例值進行標(biāo)準(zhǔn)化,才能比較
1.第一步確定每個單詞在每個人說的所有單詞中的比例(第一次標(biāo)準(zhǔn)化)速兔,也就說要確定某一個單詞對于這個人的重要性
2.然后做一次極差標(biāo)準(zhǔn)化X'=(X - Xmin)/(Xmax-Xmin)墅拭,保證0≤X'≤1,這樣就把三個人拉到同一個坐標(biāo)系涣狗,就可以比較了
3.根據(jù)上面的公式計算A谍婉、B、C镀钓,并計算出x穗熬,y
基本思路就是這樣,我們構(gòu)造一個超級簡單的數(shù)據(jù)集丁溅,以便大家理解
這個數(shù)據(jù)集就是有A唤蔗、B、C三個人窟赏,A說了一句“你好”妓柜,B說了一句“對不起”,C說了一句“沒關(guān)系”涯穷,他們?nèi)齻€人都說了一句“再見”棍掐,所以基本判斷是,“你好”拷况、“對不起”作煌、“沒關(guān)系”位于三角形的三個角掘殴,“再見”位于三角形的中心。
那么我們來試一試
添加計算字段
第一次標(biāo)準(zhǔn)化
- [A%]=[A]/{SUM([A])}
- [B%]=[B]/{SUM([B])}
- [C%]=[C]/{SUM([C])}
極差標(biāo)準(zhǔn)化
- [AN]=([A%]-{MIN([A%])})/({MAX([A%])}- {MIN([A%])})
- [BN]=([B%]-{MIN([B%])})/({MAX([B%])}- {MIN([B%])})
- [CN]=([C%]-{MIN([C%])})/({MAX([C%])}- {MIN([C%])})
確定坐標(biāo)
- [X]=0.5*[AN]/([AN]+[BN]+[CN])+[CN]/([AN]+[BN]+[CN])
- [Y]=SQRT(3)/2*[AN]/([AN]+[BN]+[CN])
[AN]/([AN]+[BN]+[CN])就是公式里的A
[CN]/([AN]+[BN]+[CN])就是公式里的C
開始畫圖
- 把[X]拖到列功能區(qū)粟誓,[Y]拖到行功能區(qū)奏寨,在“分析”菜單中取消“聚合度量”
-
把[word]字段拖到標(biāo)簽
- 接下來的美化工作就不掩飾了,如果你用自己的數(shù)據(jù)集努酸,那么還要固定X服爷、Y軸在0-1之間
這里還有一個小小的提示,就是“你好”這個詞的Y軸坐標(biāo)并不是1获诈,因為是
等邊三角形仍源,所以也不可能是1(因為勾股定理)。
希望這篇文章能夠?qū)Υ蠹矣兴鶐椭蛳眩箝_腦洞構(gòu)建自己的三元圖笼踩。
這里還有個小練習(xí),看看你是不是真的懂了
如果我們已知一些顏色的RGB值亡嫌,我們把這些顏色都放到一個三元圖里嚎于,該怎么做呢?
name,R,G,B
color1,45,12,19
color2,72,30,28
color3,98,16,46
color4,124,24,35
……
此處省略好多行自己隨便填(只要在0-255之間就可以)
我做了一個大致效果挟冠,是不是很好玩于购。
提示一下,其實直接excel里計算好ABC和XY就可以知染,都不用在Tableau里增加計算字段肋僧。
此篇文章已發(fā)布到我的公眾號:saodisir,有興趣也可關(guān)注一下