网络-R语言进行网络分析的基础包 igraph

Python021

网络-R语言进行网络分析的基础包 igraph,第1张

图有一个类' Igraph '。下面是一个示例,一个使用make_ring创建的环形图:

如果想查看图形的边,可以使用print_all函数:

要创建具有给定结构的小图形,graph_from_literal函数可能是最简单的。它使用R的公式界面,它的手册页包含了许多示例。另一种选择是graph函数,它直接接受数值顶点id。graph.atlas从 Graph Atlas创建图,make_graph 函数可以创建一些特殊的图。

igraph中有很多用于创建图的函数,有确定性的,也有随机的随机图构造器称为‘games’。

要从字段数据创建图,graph_from_edgelist、graph_from_data_frame和graph_from_adjacency_matrix可能是最好的选择。

igraph包括一些经典的随机图,如Erdos-Renyi GNP and GNM graphs (sample_gnp, sample_gnm),以及一些最近流行的模型,如preferential attachment (sample_pa) and the small-world model (sample_smallworld)。

对于边也是一样,边id总是在1到m之间,m是图中边的总数。

顶点和边在igraph中都有数值的顶点id。顶点id从1开始,总是连续的。即对于一个有n个顶点的图,顶点id在1到n之间。如果某些操作改变了图中的顶点数,例如通过induced_subgraph创建了一个子图,那么顶点将重新编号以满足这个条件。

在igraph中,可以将属性赋给图的顶点或边,或者赋给图本身。igraph提供了基于属性值选择一组顶点或边的灵活构造,有关详细信息,请参阅vertex_attr、V和E。

一些顶点/边/图属性被特殊处理。其中一个是“name”属性。这用于打印图形,而不是数字id(如果存在)。在所有igraph函数中,顶点名称也可以用来指定一个向量或顶点集。例如,度有一个v参数,它给出了度被计算的顶点。这个参数可以作为顶点名称的字符向量给出。

边也可以有一个“name”属性,这也是特别处理的。就像顶点一样,边也可以根据它们的名字来选择,例如在delete_edges和其他函数中。

我们注意到,顶点名称也可以用来选择边。形式“from|to”,其中“from”和“to”是顶点名称,选择一个单一的,可能是有方向的,从“from”到“to”的边。这两种形式也可以在同一个边选择器中混合。

如果您使用save和load来存储/检索图形,那么所有的属性值都将被保留。

igraph提供了三种不同的可视化方法。首先是情节。igraph函数。(实际上你不需要写情节。igraph, plot就够了。这个函数使用常规的R图形,可以与任何R设备一起使用。

第二个函数是tkplot,它使用一个Tk GUI来进行基本的交互式图形操作。(Tk非常需要资源,所以不要对非常大的图尝试这种方法。)

第三种方法需要rgl包并使用OpenGL。

igraph可以处理各种图形文件格式,通常用于读写。我们建议对图形使用GraphML文件格式,除非图形太大。对于较大的图形,建议采用更简单的格式。有关详细信息,请参阅read_graph和write_graph。

igraph development team

igraph Tutorials

系列文章:

networkD3 绘制动态网络

可视化数据时,网络可以很好展示各个节点之间的关系以及关系的重要性。网络中存在大量的节点和边,因此绘制一个好的网络会有助于信息的解读。networkD3可以自定义网络的各种特征,绘制一个优美的动态网络。

可以使用R包 igraph 构建网络绘制需要的数据,使用 igraph_to_networkD3 函数将数据转换成 networkD3 要求格式的输入数据。

simpleNetwork是networkD3的基础函数,可以快速出图。

绘制网络

forceNetwork有更多的参数,调整参数可以绘制更复杂的网络图。

绘制网络

forceNetwork的数据格式比较麻烦; 尤其是参数Nodes;建议大家使用igraph包 igraph_to_networkD3()网络图所需数据将转换为networkD3数据格式。本文见 #3. 与igraph交互 部分。

调用 igraph 包创建网络图所需数据,igraph_to_networkD3函数转换数据格式, networkD3 绘制图。

参考 networkD3

在 server.R 调用render*Network(*可以是 Simple , Force , Sankey )

在 app.R 文件中调用*NetworkOutput(*可以是 Simple , Force , Sankey )

shiny例子: networkD3-shiny-example

networkD3 :D3 JavaScript Network Graphs from R

networkD3 github

系列文章:

R语言进行网络分析的基础包 igraph

networkD3 绘制动态网络

网络-visNetwork包绘制炫酷的动态网络图

网络-调用R包构建交互式网络可视化的Shiny App

如果编程跟统计学都没有学过,那推荐直接学R,R里面的包都是由统计专业人员编写,哪怕你不懂统计概念,也可以阅读文档得到相应结果,而不需要写大量代码。

这种图的中文名称挺多的,百度做的ECHART里翻译为关系图http://echarts.baidu.com/examples.html#chart-type-graph

这种图我在R语言里做过类似的。在R语言里导入igraph包,你百度一下资料挺多的

igraph官网:http://igraph.org/r/