用Tableau画圆形网络关系图
圆形网络关系图同和弦图(《用Tableau画和弦图之二》)比较类似,实现起来思路也一样,不过更容易一些。
下面我就简单介绍一下。
创建数据集
数据集就是随机生成的,[index start]和[index end]就是[start]和[end]中,各字母的放在一起的总排序值,排序决定了每个点在圆环中的位置,这个可以参考上面和弦图的文章。排序一定是按顺序的。
Tableau引入数据,并制作并集,这样数据集就从16行扩充到32行。
创建计算字段
- path id=
IF [表名称]="Sheet1" then 1
ELSE 2
END
- 创建参数max sort
由于我们的数据集是16行,所以默认值是16。
-
start x= COS([index start]/[max sort] * PI() * 2)
-
start y= SIN([index start]/[max sort] * PI() * 2)
-
end x= COS([index end]/[max sort] * PI() * 2)
-
end y= SIN([index end]/[max sort] * PI() * 2)
-
x=
IF [path id]=1 then [start x]
ELSE [end x]
End
- y=
IF [path id]=1 then [start y]
ELSE [end y]
End
这里的x和y计算公式,比起和弦图就简单的多了。
开始做图
-
将[x]拖到列功能区,[y]拖到行功能区,取消聚合。
-
标记类型选择“线”,将[index start]拖到“详细信息”。
-
将[path id],拖到“路径”,[value]拖到“大小”。
-
再次将[x]拖到列功能区,双轴并同步轴。
如果想在连线上加个标签,可以增加一个计算字段,拖到工具提示上。
- label= str([start])+"-->"+STR([end])
同和弦图比起来,基本上没有太多难度。主要是数据源处理的时候,需要自行确定各个点的位置顺序,也就是[index start]和[index end]这两个字段的值,总觉得这里还有些改进的空间。
Toan Hoang大神在自己的Public上放出了<Circular Network Graph>的Viz,但是目前Tableau Magic上还没有公布具体方法,不过应该不会等太长时间,有兴趣的同学可以关注一下,应该会有更好的解决方案。
https://public.tableau.com/profile/toan.hoang#!/vizhome/CircularNetworkGraph/CircularNetworkGraph
此篇文章已发布到我的公众号: saodisir,有兴趣也可关注一下