举个栗子~Tableau 技巧(244):用和弦图(Chord diagram)呈现数据关系

关于和弦图

和弦图(Chord diagram)常用来表示数据之间的相互关系。数据点沿着圆圈分布,通过点和点之间相互连接的弧线来呈现相互之间的关系。和弦图从视觉上来说比较美观,数据呈现又很直观,所以深受数据粉喜爱。

之前,我们分享过 🌰:轻松搞定 关系网 图表,如果数据粉希望换一种方式呈现数据关系,可以考虑和弦图哦~
关系和弦图的实现方法会相对复杂一些,因此我们用一份容易理解的电影角色关系数据(如下示例),来分享它的实现方法!
图片

图片

本期的栗子,一睹为快吧!

本期《举个栗子》,我们要给大家分享的 Tableau 技巧是:用和弦图(Chord diagram)呈现数据关系。

为方便学习,栗子使用自拟的“人物关系和弦图”数据源。掌握栗子方法后,数据粉可尝试使用自己的数据源。懒癌患者可通过以下链接获取栗子数据源:

https://www.dkmeco.com/cms/course/detail/645

D-栗子数据源

图片

▲ sheet 1

  • 角色 ID:用于识别角色的唯一 ID,同一人物 角色 ID 和关系人 ID 相同;

  • 关系人 ID:用于识别关系人的唯一 ID,同一人物 角色 ID 和关系人 ID 相同;

  • 主要关系类型:对角色和关系人的关系的离散分类;

  • 关系描述:对角色和关系人的关系的文字描述,缺失此字段不影响图形展示;

  • 连接:lonely moon 表和 repetition 表内连的字段,相同即可。

图片

sheet 2 ▲

  • R:范围从 0.01~1 共计 100 个数,以及单独的 2。此字段的目的为了在 Tableau 连接两个表,将 lonely moon 的数据重复 101 遍;

  • 连接:与 lonely moon 的连接相同,都为1,方便“内连接”。

Tips:所有的人物 ID 都需要有一行角色 ID,即使该人物 ID没有对应的关系人 ID,例如:孙光阳;虽然关系是相互的,但是在数据中,若已经有了金刚鼠->孙光阳的关系,即可不必补充孙光阳->金刚鼠的关系。

具体步骤如下:

连接数据源
打开 Tableau Desktop,连接栗子数据源,将两个表 “lonely moon” 和 “Repetition” 通过内联接在一起。
图片

图片

图片

创建参数

新建工作表,单击“数据”窗格右上角 ▼ 符号,在下拉菜单中选择:创建参数。
➤ 创建参数:distance,用于调整人物图和关系线之间的距离,如图设置。
图片

➤ 创建参数:突出角色,用于点击关系线时,突出显示线两端的头像使用,参数内需包含所有的角色,以及手动在“值列表”添加一个“全部”,如图设置。
图片

➤ 创建参数:突出关系人,用于点击关系线时,突出显示线两端的头像使用,参数内需包含所有的关系人,以及手动在“值列表”添加一个“全部”,如图设置。
图片

创建计算字段

新建工作表,单击“数据”窗格右上角 ▼ 符号,在下拉菜单中选择:创建计算字段。需要创建 14 个计算字段。
➤ 计算字段:各角色最小关系id,键入函数:

{ FIXED [角色id]:MIN([关系人id])},该字段用于限制只出现一个头像点 。

图片

➤ 计算字段:总人数,键入函数:

{fixed:COUNTD([角色id])},该字段用于三角函数使用。

图片

➤ 计算字段:标签,键入函数:
IF [R] = 2 then [角色] END,该字段用于显示头像的名称。
图片

➤ 计算字段:突出点,键入函数:
if ([突出关系人]=[角色] or [突出角色]=[角色]) and [R]=2
and [关系人id]=[各角色最小关系id] then ‘可突出’
ELSEIF [突出角色]=[角色] and [R]!=2 and [突出关系人]=[关系人] then ‘可突出’
else ‘不可突出’ end
该字段用于点击关系线时,确定哪些点应该突出显示。
图片

➤ 计算字段:关系人.x,键入函数:
COS([关系人id]/[总人数] * PI() * 2) //范围cos(2Π/n ~2Π) [-1,1)
图片

➤ 计算字段:关系人.y,键入函数:
sin([关系人id]/[总人数] * PI() * 2) //范围sin(2Π/n ~2Π) [-1,1)
图片

➤ 计算字段:角色.x,键入函数:
COS([角色id]/[总人数] * PI() * 2) //范围cos(2Π/n ~2Π) [-1,1)
图片

➤ 计算字段:角色.y,键入函数:
sin([角色id]/[总人数] * PI() * 2) //范围sin(2Π/n ~2Π) [-1,1)
图片

➤ 计算字段:余弦.x,键入函数:
COS((ACOS([角色.x])+ACOS([关系人.x]))/2)
图片

➤ 计算字段:正弦.y,键入函数:
SIN((ASIN([关系人.y])+ASIN([角色.y]))/2)
图片

➤ 计算字段:距离,键入函数:
SQRT(([角色.x] - [关系人.x])^2 + ([角色.y] - [关系人.y])^2)
图片

➤ 计算字段:x,键入函数:
IF [R] >= 0 AND [R] <= 1
THEN (( (1 - [R])^2 ) * [角色.x]) + (2 * (1 - [R]) * [R] * ( ((2 - [距离])/ 2) *[余弦.x] )) + ([R]^2 * [关系人.x]) END
注意:创建完成后,右键单击该字段,将其转化为:维度、再转化为:连续。
图片

➤ 计算字段:y,键入函数:
IF [R] >= 0 AND [R] <= 1
THEN (( (1 - [R])^2 ) * [角色.y]) + (2 * (1 - [R]) * [R] * ( ((2 - [距离])/ 2) * [正弦.y] ) ) + ([R]^2 * [关系人.y])
ELSEIF [R] = 2 and [关系人id]=[各角色最小关系id]
THEN [distance] * [角色.y] END
注意:创建完成后,右键单击该字段,将其转化为:维度、再转化为:连续。
图片

➤ 计算字段:x.shape,键入函数:
IF [R] = 2 and [关系人id]=[各角色最小关系id]
THEN [distance] * [角色.x] END
注意:创建完成后,右键单击该字段,将其转化为:维度、再转化为:连续。
图片

为便于数据管理,可将刚刚创建的这些计算字段,根据用途分别放在三个文件夹里。

图片

创建视图

首先,将计算字段“x”和“x.shape”拖放至列,将“y”拖放至行。再对“x”和“x.shape”做双轴和同步轴操作,并移除“全部”“标记”卡上的“度量名称”颜色胶囊。
图片

打开“x”“标记”卡,将其标记类型改为:线,并如下图将各个字段拖放至该“标记”卡中(注意:需要将字段“R”转化为维度、再转化为连续,然后再拖放到“路径”中)。
图片

单击“x”“标记”卡的工具提示,如下图设置:
图片

打开“x.shape”“标记”卡,并如下图将各个字段拖放至该“标记”卡中。
图片

按照 🌰 如何插入自定义形状 方法,将角色头像图片放入电脑中。
图片

单击“x.shape”“标记”卡的形状,为各个角色设置对应的头像。
图片

图片

设置好之后,可以根据需要调整一下大小。
图片

然后,将字段“突出点”拖放至“全部”“标记”卡的详细信息中,如下图。
图片

设置仪表板操作

新建仪表板,将刚刚创建的工作表拖放至右侧视图中。然后,单击顶部菜单栏“仪表板”,下拉菜单选择:操作,需要添加三个操作。
图片

弹窗中,需要以此选择,添加一个突出显示操作、两个参数操作。

图片

➤ 参数:传递需要突出的关系人,如下图设置。
图片

➤ 参数:传递需要突出的角色,如下图设置。
图片

➤ 突出显示动作:突出显示1,如下图设置。
图片

完成后,可以实现单击关系线,突出显示关系线和关系线两端的头像的功能,见下图。
图片

最后,再按需设置文字、线粗细、颜色、格式等等,就实现了我们想要的电影《独行月球》角色关系和弦图了。
图片

本期的 Tableau 技巧,你 Get 到了吗?
下一期,再见~
在这里插入图片描述

文章部分信息来源于网络,如有侵权请告知

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/37994.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HuggingGPT 火了:一个 ChatGPT 控制所有 AI 模型,自动帮人完成 AI 任务,网友:留口饭吃吧..._QbitAl 的博客 - CSDN 博客

转载自&#xff1a;https://blog.csdn.net/QbitAI/article/details/129942855 丰色 发自 凹非寺 量子位 | 公众号 QbitAI 最强组合&#xff1a;HuggingFaceChatGPT —— HuggingGPT&#xff0c;它来了&#xff01; 只要给定一个 AI 任务&#xff0c;例如 “下面这张图片里…

“寻找贾维斯”简史

可能人人都希望自己有个“贾维斯”。 虽然已经退出漫威电影很多年&#xff0c;但是我们还是能够记起那个钢铁侠战衣里无所不能的AI助手。独特的幽默、优雅的语调&#xff0c;以及非常靠谱的人设&#xff0c;让无数科幻迷对这个看不见听得到的角色产生了无尽好感。 对贾维斯的…

jarvis贾维斯语音_保罗·贾维斯(Paul Jarvis)可以教给我们的建立业务的知识

jarvis贾维斯语音 想要在八到九个月内赚足够的钱&#xff0c;让您在一年中的剩余时间里做任何想做的事吗&#xff1f; (Want to make enough money in eight or nine months to last you for the rest of the year doing whatever the heck you want?) So do we. That’s why …

JARVIS(贾维斯)来了,科技改变生活

微软开源地址 https://github.com/microsoft/JARVIS 后续可能性&#xff1a; 每个人都有一个自己的AI助理提高生活便捷性学习知识的速度更快云助理 && 家用私人部署助理

谷歌拼音 输入法设置

谷歌拼音输入法 2.7&#xff0c;默认的是半角字符&#xff0c;中文标点 为了防止 以后 在输入代码的时候&#xff0c;出错&#xff0c;中文和 英文 都用 英文标点吧。

基于ubuntu20.4安装谷歌拼音中文输入法

1.首先命令行安装汉语语言包 sudo apt-get install language-pack-zh-hans 执行该命令后&#xff0c;系统就会自动安装所需要的汉语语言包 图1 安装汉语语言包 2.然后命令行安装谷歌拼音输入法 sudo apt-get install fcitx-googlepinyin 执行该命令后&#xff0c;系统就会自…

google输入法PK搜狗输入法

往往一个人用某个软件用的时间久了,久而久之就会形成一种习惯,不再探索或关注其他的类似的软件。造成的后果就是你只知道一款软件就这些功能,其余的知之甚少,就如同今天,看到别人输入法的皮肤特别漂亮,于是就想搜狗有这么漂亮的皮肤。问过后才知道人家用的是个google的拼…

Ubuntu20.04 安装谷歌拼音(googlepinyin)输入法

1.更新一下 sudo apt update 2.安装Fcitx sudo apt install fcitx如果有报错&#xff0c;执行下面命令 sudo apt install fcitx --fix-missing 3.命令行输入&#xff1a; im-config 弹出页面 &#xff0c;选择ok&#xff0c;然后选择yes按钮&#xff0c;最后选择fcitx。…

谷歌拼音输入法PinyinIME源码修改----随着Setting中中英文的切换对应改变软键盘中英文输入且字符变换

项目中使用的是Google的输入法&#xff1a;谷歌拼音输入法&#xff0c;即PinyinIME。 客户提出需求&#xff1a;需要在Setting中切换中英文的时候&#xff0c;输入法对应成中英文输入&#xff0c;并且字符也对应成中英文&#xff0c;即Setting中设置为中文的时候&#xff0c;输…

安装google输入法后,左shift键不能切换中英文

解决方法 打开fcitx配置页 如图应有两个选项&#xff0c;即google拼音和 键盘英语&#xff0c;如不足&#xff0c;则选择左下角添加。 此后虽然可切换中英文&#xff0c;但是打开一个新页面后只按shift键却不能正常切换中英&#xff0c;必须要ctrl加空格后才能切换&#xff0c…

写在发现谷歌拼音输入法网站消失的今天

今天偶然发现谷歌拼音输入法PC版的网页消失了&#xff0c;我想以后可能都不会有了&#xff0c;除非谷歌重返大陆。 PC端的谷歌拼音输入法从2013年就已经停止更新&#xff0c;但这并不妨碍我继续使用它&#xff0c;之前它的官网一直都在&#xff0c;也提供下载。 之所以喜欢这…

Google推出拼音输入法了!

网址&#xff1a; http://tools.google.com/pinyin 下载地址&#xff1a;http://dl.google.com/pinyin/GooglePinyinInstaller.exe 用了一下&#xff0c;感觉挺好用的&#xff0c;同志们有兴趣的话&#xff0c;也试试看吧。恩 聪明的谷歌拼音输入法五大特色&#xff1a; …

网页上使用的输入法——Google Transliteration

简介 输入法通常是装在PC上用的&#xff0c;但是API有关部门的童鞋发现了专门在网页上用的输入法&#xff08;见上图&#xff09;。 这个插件的作用&#xff0c;按照官方说法&#xff1a; 您可以使用 Google 输入工具在网络中的任何位置以所选语言轻松地输入内容。 此接口采集自…

Python实战之12306抢票

实战&#xff1a;12306抢票 注意&#xff1a;代码运行之后&#xff0c;需要手动使用12306APP扫码登录 代码如下&#xff1a; import csv from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.support.ui import…

python实现12306全自动抢票

这个脚本目前只能刷一趟车的&#xff0c;人数可以是多个&#xff0c;支持选取作为类型等。 实现思路是splinter.browser模拟浏览器登陆和操作&#xff0c;由于12306的验证码不好自动识别&#xff0c;所以&#xff0c;验证码需要用户进行手动识别&#xff0c;并进行登陆操作&am…

小年到了,回家抢票太难,用Python做个脚本12306自动查票以及自动购票....

今天就是小年了&#xff0c;听说还有人买不到票&#xff1f;不要慌&#xff0c;今天咱们来用Python做一个自动查票抢票的脚本&#xff0c;24小时抢票&#xff0c;谁抢的过你&#xff01;源码包已打包文件夹获取方式&#xff1a;点击这里【 Python全套资料】 即可获取。 准备工作…

C++写的12306抢票软件

写在前面的话 每年逢年过节&#xff0c;一票难求读者肯定不陌生。这篇文章&#xff0c;我们带领读者从零实现一款12306刷票软件&#xff0c;其核心原理还是通过发送http请求模拟登录12306网站的购票的过程&#xff0c;最后买到票。 郑重申明一下&#xff1a;这里介绍的技术仅供…

Python抢票神器

又到了一年一度的抢票大战&#xff0c;本来就辛苦劳累了一年&#xff0c;想着可以早点订到票跟家里人团聚。所以&#xff0c;许多人宁愿多花些钱去找黄牛买票。 但今年各种抢票软件的横行&#xff0c;还有官方出的加速包&#xff0c;导致连黄牛都不敢保证能买到票。你无奈的只能…

chatgpt赋能python:如何利用Python抢票

如何利用Python抢票 Python是一种非常流行的编程语言&#xff0c;可以轻松编写自动化工具。如果你想要在抢票热潮中获得胜利&#xff0c;这篇文章将向你展示如何使用Python编写程序来自动抢票。 抢票原理 在开始编写程序之前&#xff0c;我们需要了解如何抢票。抢票的原理是…

python写一个简单的12306抢票

引言 每逢过年就到了12306抢票高峰期&#xff0c;自己总想研究一下12306购票的流程&#xff0c;虽然网上已经很多资料&#xff0c;但是总比不过自己的亲身体会&#xff0c;于是便琢磨着写一个抢票软件&#xff0c;本人比较熟悉python&#xff0c;所以软件是用python写的。 使…