桑基图可以来展示两组数据的流动情况,在tableau中我们可以先制作出以下gif图的图形,然后再拼接其他的图形,以实现可视化的完整展示。本文主要向大家介绍怎么制作出以下图形。
中美德日世界50强公司的分布具体情况(桑基图曲线部分)我们这里采用的是世界500强的数据,为了使得展示变得简单,我只保留了前50强中的中美德日四个国家的数据。如上图所示,左边四个发散的端点代表四个国家,右边的发散的曲线代表公司(数据集附于文章后面,需要的自取)
数据源由两个excel工作表组成,一个为加工后的数据表(sheet2),一个是为了构造曲线两端对称的表(sheet3)。
一、加工excel
首先我们对原数据表(sheet1)复制为sheet2,对其进行加工,赋予公司一个ID,国家一个ID。由数据我们可以看到,总共有39个公司,4个国家。为了使得它们在高度上保持一致(美观),我们将公司ID设为1-39,四个国家ID设为:德国2、中国13、美国24、日本35(从纵坐标的底端到最高处)。关于国家ID设置可以自行安排,但建议不要取最大最小值,也就是1和39,不然这样会很难看。 国家ID可以用if函数来输入
=IF(G2="中国",13,IF(G2="德国",2,IF(G2="日本",35,24)))
然后我们在后面新添加一列LINK字段,用来与sheet3连接。
其次,我们新建一个工作表sheet3,建立一个横坐标字段和LINK字段,横坐标字段以1为步长,从-19到19.
sheet2:加工后的原数据表 sheet3二、tableau操作
用tableau打开excel工作簿,选择sheet2、3进行内联接,然后转到工作表,新建logistic计算字段,其实我们桑基图的基本曲线就是logistic函数,有兴趣的可以去了解一下,它的函数如下:
logistic函数 logistic计算字段再新建一个F(横坐标)计算字段, 如图所示。
F(横坐标)计算字段将F(横坐标)拖入到行,改为维度;将横坐标拖入到列。
接下来双击横坐标,选择倒序,并把国家拖入到颜色,把公司名称拖入标注,即大功告成。
若觉得左边端点的那四条线有点过长,可以调节一下logistic计算字段,我的调节如下图所示:
调节一下logistic函数之后隐藏坐标轴等操作,读者自行操作。
数据源:
http://note.youdao.com/noteshare?id=0c69c70b6523a03fb3707c3904b0373f
网友评论