提过很多次的关系网,课代表今天来教大家
再如 100 多年来的 8.8 万多篇《自然》论文网络关系图,视频中的一个点代表一篇论文,颜色代表学科。如果有其他的科研论文(被Web of Science收录的)同时引用了这篇论文,那么它们之间就会有连线,而点的大小则代表被引用的次数。
前段时间,课代表也做了一些关于网络关系的图。
在#河南暴雨互助#微博话题下,我们可视化了一条称“郑州科技馆停车场开放,提供避雨场所,提供热水、方便面”的微博转发链(截至2021年8月3日,该条微博被转发了2.7万次)。
我们还做了恐怖组织的一个关系网,剖析他们关系的错综复杂。
说了这么多,课代表这节课用两种工具教大家学会制作网络关系网!
第一种工具是老牌专业关系网工具 Gephi 。
1⃣️节点数据(点)
在节点数据中, id 是一个很必要的数据,也是我们关系网中所代表的点。
另一个是边数据,我们需要罗列 source 和 target 两列数据,而这两列数据我们可以用节点数据里面 id 表示。
点与点的关系还需要判断是否有方向性。如果是附属关系的话,他们的关系就是有方向性的(directed);而如果是结盟或者敌对,都是相互关系的,他们之间的边就没有方向性(undirected)。
接下来我们就在 Gephi 里面分别导入节点数据和边数据。
选项基本为默认选项,除了最后一步,记得要选择Append to existing workspace(把数据扩展到已存在的工作区)。若不在一个工作区内,点数据和边数据无法产生连接。🤷♀️
这样我们的节点数据和边数据就可以在同一个工作区里面了。
接下来我们就可以排布位置了,在【概览】界面的左下角,有一些默认的布局可以选择。
比如 Fruchterman Reingold 力引导布局就可以把所有点分布在一个圆形里面。如果基于默认的布局排布不满意的话,也可以手动拖拽节点。
你会发现,有些圆(组织)连接着很多其他圆(组织),有些圆(组织)可能就与一个圆有联系。在网络关系图里面,每个顶点(节点)连出的所有边(连结)的数量就是这个顶点(节点)的度。所以我们可以根据这个度来给节点不同的大小。
不同的边也可以根据不同的属性有不同的颜色,边也会根据有无方向性(directed还是undirected)判断是否有箭头。
最后,在预览中还可以导出矢量格式方便后期修改!
由于 Gephi 的默认几个布局没有摆出我们想要的造型😮💨,所以课代表又尝试了另一个工具。
我们用了AntV 的 G6(https://antv-g6.gitee.io/zh/graphmarker)上的在线工具测试。
在网页上,放入对应的 json 格式,虽然格式不同,但 json 数据也包含了所需要的节点数据和边数据。我们可以把之前的两份数据用在线 csv 转 json 的工具,把数据格式进行转换。
和 Gephi一样,有一些常用的布局可以选择。
在这里,我们选择了辐射模式,以基地组织为辐射中心,其他依次展开,可以把我们想要表达的一个层级关系层层有一定规律的展现。后期我们也根据 G6 粒生成的排布,在我们的项目中根据位置去定位。
G6 还可以导出 js 文件,如果想放在网页上,非常方便下载下来调用。
当然,网络图的做法还有很多,比如d3.js 、Flourish 都可以制作,感兴趣的同学可以自行研究一下~
回复 57 可以获取本文数据及相关链接。
欢迎留言告诉我们你还想学习的图表类型,课代表尽量安排!
◒◡◒
┊推 - 荐 - 阅 - 读┊