Member-only story
如何用 R 绘制交互式社会网络图?
挖掘社会关系网络,助你洞若观火。
需求
最近有个学生问我,如何绘制交互式社会网络图(Interactive Social Network Graph)?
之所以一定要交互式,是因为他的应用场景,是演示给客户。
他解释说,如果客户有选项,可以根据需要来缩放图形、聚焦类别,甚至是可以拖拽图形元素,以不同视角来查看,那展示效果显然会更好。
我对学生这次把握客户需求的能力,还是比较赞赏的。确实,数据可视化的目的就是为了与人沟通。而人是需要控制感的。
在数据科学里,这个需求,属于网络可视化(Network Visualization)范畴。应用上,除了描绘社会网络外,这种可视化的对象还可以包括引文网络、贸易网络、信息(或疾病)传播网络等。甚至,网络可视化操作还能与时序数据结合,例如 Maximilian Noichl 绘制的这张古代哲学家的动态关系网络图。
网络可视化的工具,是非常多的。
然而,一旦涉及了交互式,选项就大幅减少了。特别是,他还要求免费、易学、格式开放、演示环境易于部署……
这条件,够苛刻了吧?
还好,我还真就帮他找到了。
虽然易学,可是由于他是文科生,我觉得还是给他写个教程,比较妥帖。
教程写完之后,我觉得你可能也会用得上,所以一并分享给你。
演示数据,我自然不能用他的。否则有泄露商业机密的风险。这里我采用的,是斯坦福大学开放课程《数据库基础》中的一个简单数据样例。我在国际班讲的 英文数据库课程,一直用它作为练习数据。
这个演示数据的特点,就是简单。
有多简单?往下看。
数据
该数据刻画的,是某高中里 4 个年级部分学生之间的社交关系。
我们一共需要用到 3 张数据表格,分别是学生信息、朋友关系和 “喜欢” 关系。