Fork me on GitHub

关系网络数据可视化:3. 案例:公司职员关系图表 & 导演演员关系网络可视化

 1. 公司职员关系图表

节点和边界数据

节点是指每个节点本身的数据,代表公司职工的名称;属性(Country)、分类(Category)和地区(Region,给每个节点定义的属性数据)。文件必须是.csv的格式。

连接线数据,不同的两个点之间的关系,权重(可以用各种方式做一个度量)。节点的数据结构可以是以点的形式,一个行数据是一个节点它有它的属性;边线的数据它每一行是两个点之间的关系。

 

节点数据名第一个字段必须是Id(第一个必须大写,第二个字母d小写),后边的字段Country、Category、Region、Level是可以变的(它们是点的属性);

边线的字段名必须target和source,并且内容是一一对应的(就是target和source所对应的点必须在node文件里边必须是能够对应的上的,否则无法识别) 一个edge代表了点与点间的关系,而node代表每个点的属性,它肯定要有个标签去对应,这个标签就是它的Id名称,

第一步:导入数据,node和edge 

节点---node; 边---edge。

 第二步:按照不同的国家做一个颜色的界定

 第三步:设置下

节点有多大,里边的字体就有多大。

还是密密麻麻的,节点按照某种关系做一个输出,连出度越大,这个点本身越大。

 连出度代表我这个人跟多少人是有关系的;

 

 

就是我这个点跟其他点的连接关系;连出度是往外连接的,连入度是从外边往里边连接的。整个度是两个的求和。

 

第四步:参数

网络直径是点与点之间的最小距离

 

Betweenness Centrality:网络中任意两个点之间的最短路径,如果这个最短 路径都经过某个节点,那么这个节点的最短基数越高。

Closeness centrality

Eccentricity

Harmonic closeness centrality

 

把布局再调整下: ForceAtlas2   收缩   扩展   

Betweenness Centrality中层领导(连接高层领导又连接下层的一个角色);

Closeness centrality: 所有跟我有连接的平均值是最短的;在公司中他跟谁都近,但连入度不一定是最高的

 

这个不是特别明显,大家的值的区别都不是很大,大小都是差不多大。

 

 

 2. 案例:导演演员关系网络可视化

如何做一个筛选和数据清洗?通过可视化的方式直接清洗它

主要用到过滤和统计的模块

第一步:

加载数据---->> 数据太多,需要进行筛选和处理,筛选之后,统计计算只会计算筛选下来的内容;

 

第二步:

进行过滤

 

数据清洗

清洗的逻辑有:巨人组件参数和K核心

巨人组件是会保留一个组团中连接最多的那些节点,由于本身又一些连接关系,但是会有一些点没有联系(相当于没有那个参数),由于重力的关系会实现一个簇。巨人组件就会自动的删除周边这些点。

把相互之间的点的度看成它的一个均值,每一个点都有一个度,K核心可以按照这个度做一个筛选,比如K(核心)=0,基本上不会做任何的筛选,度非常小的接线还会保留。

K=4的时候它就会把那些小的接线给去掉了。

通过这两个方法不断去优化这些数据点的个数。节点数尽 量在1000个左右,还可以通过相互度的范围做下一步的筛选。

1000个节点(经验数值)以下的好做运算。

第三步:

再通过模块化对整个数据做一个聚类,得到里边的模块。最后这个模块就会呈现出我们想要的效果。

 在这一步我们需要不断的去调整参数,去做这个设置,解析度越大,簇的社区越少。

 

布局 扩展ForceAtlas2来进行调节。

 

 哪些点是属于黏度比较高的?算下网络的直径,

 

预览

度范围的操作结果如下:

 

 

posted @ 2018-09-30 22:30  kris12  阅读(2074)  评论(1编辑  收藏  举报
levels of contents