制图不求人 自己动手制作桑基图
作者:平淡
来源:《电脑爱好者》2020年第04期
        镝数(https://dydata.io)是一个提供在线图表分析的网站,我们可以自己上传数据快速生成桑基图。
自己免费制作网站
        首先使用Excel准备需要制作桑基图的数据,因为桑基图主要用来表示流量分析,它一般由“边”和“节点”组成,边对应原始数据源,然后映射到对应的节点。因此制作桑基图的数据最好是一些表示流量分流的数据,并且预先规划好映射关系。这里我们以某公司回笼货款的区域、省份分布为例,对应关系是“货款→大区→所属省份”,按提示依次在Excel中准备好对应的数据,文件格式注意对应关系(图1)。
        在浏览器中打开上述网址,进入网站后点击“做图表→上传数据”,按提示将上述准备好的数据上传到网站,然后按照向导的提示选择“桑基图”模板(图2),这样就可以快速生成桑基图了。
        按提示设置好图表标题、单位、数据来源,关闭水印和Logo显示。预览满意后点击“下载”到本地备用(如果需要在PPT中演示,建议下载为GIF格式,这样会有一个从左到右的动态流向效果),以后将其插入到Excel或者PPT中,就可以通过这个图表清晰地看到回笼资金的来源和分布了(图3)。
        在線制作虽然简单,但是免费用户有下载次数的限制,而且网站自带模板较少。如果经常需要制作桑基图,那么还可以借助“Tableau桌面版”(下载地址:https://www.tableau/products/desktop)来实现。
        Tableau桌面版制作桑基图通过两个工作表链接比较容易实现,因此我们首先需要对数据进行整理,下面依然以某公司各个销售部货款回笼数据为例。为了更精准地实现关系映射,这里先在原始数据后添加“省份ID”(按照序号填充即可,对应具体省份)、“部门ID”(对
应实际销售部,四个部门ID分别设置为2、10、18、26)、“link”(全部填充link字样,对应另一张工作表的link字段)等三列信息。同时再建一个新工作表2,在其中将E1、F1分别输入“横坐标”和“link”。因为这里数据总共39行,先在E21输入“0”,E20输入“-1”,E22输入“1”并将步进设置为“1”,依次向上和向下填充到E2和E40(图4)。
        完成Tableau桌面版的安装后,双击桌面的“Preferences.tps”启动程序。点击“打开工作簿”,然后导入上述制作好的数据文件,在打开的窗口将导入工作表的“Sheet1”和“Sheet2”依次拖到右侧窗格,并使用内部链接的方式进行连接(图5)。
        切换到下方的“工作表2”,在“度量”下右击其中的“记录数”,选择“新建计算字段”。在打开的窗口中按提示新建一个名为“函数”的新字段,字段内容输入“1/(1+exp(1)^-[横坐标])”(不合外侧引号,下同)。这是一个S型生长曲线函数,它的作用是将变量映射到“0,1”之间,生成桑基图中的S型曲线(图6)。
        操作同上,继续新建一个名为“纵轴显示”的新字段,字段内容输入“[省份|D]+(([部门ID]-[省份ID])*[函数])”。这个字段生成桑基图的左侧边内容,其中字段名称(省份ID、部门ID)要和原始数据中的名称一致,[函数]字段名称与上述新建字段名称一致。
        完成上述操作后,将“Shcct2”下的“横坐标”字段拖到右侧窗格的“列”,将新建的“纵轴显示”字段拖到“行”,同时点击“纵轴显示”字段后的下拉按钮,在展开的菜单中将其设置为“维度”(图7)。
        继续将左侧窗格“Sheet1”下的“销售部门”和“所辖省份”字段、“Shcct1”下的“销售金额”字段拖到右侧窗格“标记”选项的下方。点击“销售部门”前的按钮,将其设置为“颜”,点击“总和(销售金额)”前的按钮设置为“大小”(这样每条曲线大小和金额对应,可以在右侧窗格对显示图例、大小进行更多设置),这样一幅桑基图就完成了。在右侧选择不同的销售部门,或者点击其中的任意线条,可以很清晰地看到具体省份货款回笼数字(图8)。
        如果需要导出桑基图,只要在图表上右击选择“拷贝→图像”,将其粘贴到Excel、PPT中即可使用了。当然选择不同的字段还可以制作出不同形状的桑基图,或者其他图表,而且借助Tableau还可以对数据进行各种分析,大家不妨自行去下载尝试(图9)。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。