标签: igraph

在R中改变iGraph中顶点之间的间距

假设我想用以下数据制作一个图:

pairs <- c(1, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, 2, 8, 2, 9, 2, 10, 2, 11, 4, 
           14, 4, 15, 6, 13, 6, 19, 6, 28, 6, 36, 7, 16, 7, 23, 7, 26, 7, 33,
           7, 39, 7, 43, 8, 35, 8, 40, 9, 21, 9, 22, 9, 25, 9, 27, 9, 33, 9,
           38, 10, 12, 10, 18, 10, 20, 10, 32, 10, 34, 10, 37, 10, 44, 10, 45,
           10, …
Run Code Online (Sandbox Code Playgroud)

plot r igraph

10
推荐指数
1
解决办法
5696
查看次数

pycairo"ImportError:DLL加载失败:找不到指定的模块." 即使安装了DLL之后

我在这里遵循pycairo安装说明:http: //www.cs.rhul.ac.uk/home/tamas/development/igraph/tutorial/install.html 安装pycairo以便与igraph一起使用.

但是,即使在运行安装程序并根据说明将所有DLL解压缩/复制到site-packages cairo目录之后,我仍然会收到以下错误:


>>> import cairo
Traceback (most recent call last):
  File "", line 1, in 
  File "c:\Python26\lib\site-packages\cairo__init__.py", line 1, in 
    from _cairo import *
ImportError: DLL load failed: The specified module could not be found.
>>> 

我在Windows 7下运行python 2.6.6.

有任何想法吗?

python igraph windows-7 pycairo

9
推荐指数
1
解决办法
2万
查看次数

R:igraph,社区检测,edge.betweenness方法,每个社区的计数/列表成员?

我有一个相对较大的顶点图:524边:1125,是真实世界的交易.边缘是直的并且具有重量(包含是可选的).我正在尝试调查图中的各个社区,并且基本上需要一种方法:

- 计算所有可能的社区

- 计算最佳社区数量

- 返回每个(最佳)社区的成员/成员数量

到目前为止,我已经设法将以下代码汇总在一起,绘制了与各种社区相对应的颜色编码图,但是我不知道如何控制社区的数量(即绘制成员数最多的前5个社区)或列出特定社区的成员.

library(igraph)
edges <- read.csv('http://dl.dropbox.com/u/23776534/Facebook%20%5BEdges%5D.csv')
all<-graph.data.frame(edges)
summary(all)

all_eb <- edge.betweenness.community(all)
mods <- sapply(0:ecount(all), function(i) {
all2 <- delete.edges(all, all_eb$removed.edges[seq(length=i)])
cl <- clusters(all2)$membership
modularity(all, cl)
})


plot(mods, type="l")

all2<-delete.edges(all, all_eb$removed.edges[seq(length=which.max(mods)-1)])

V(all)$color=clusters(all2)$membership

all$layout <- layout.fruchterman.reingold(all,weight=V(all)$weigth)

plot(all, vertex.size=4, vertex.label=NA, vertex.frame.color="black", edge.color="grey",
edge.arrow.size=0.1,rescale=TRUE,vertex.label=NA, edge.width=.1,vertex.label.font=NA)
Run Code Online (Sandbox Code Playgroud)

因为边缘介于中间方法执行得很差,我再次使用walktrap方法尝试:

all_wt<- walktrap.community(all, steps=6,modularity=TRUE,labels=TRUE)
all_wt_memb <- community.to.membership(all, all_wt$merges, steps=which.max(all_wt$modularity)-1)


colbar <- rainbow(20)
col_wt<- colbar[all_wt_memb$membership+1]

l <- layout.fruchterman.reingold(all, niter=100)
plot(all, layout=l, vertex.size=3, vertex.color=col_wt, vertex.label=NA,edge.arrow.size=0.01,
                    main="Walktrap Method")
all_wt_memb$csize
[1] 176  13 204  24   9 263 …
Run Code Online (Sandbox Code Playgroud)

modularity r igraph

9
推荐指数
1
解决办法
7952
查看次数

在igraph中生成社区图

我一直在寻找这个问题的答案,但找不到任何提及,所以我决定在这里发帖.我试图看看igraph或任何软件包是否提供了一种创建"社区图"的简单方法,其中每个节点代表网络中的社区,并且关系代表社区之间的联系.我可以让社区检测算法在igraph中正常工作,但我找不到一种方法来折叠结果,只显示每个社区之间的连接.任何援助将不胜感激.

r social-networking igraph

9
推荐指数
1
解决办法
5596
查看次数

乳胶中的tkplot通过knitr和igraph

这可能是一个疯狂的奇怪梦想.我dreampt我可以把一个tkplotigraph通过乳胶文档中knitr.我知道Yihui知道动画的东西,所以我想也许这是可能的.谷歌搜索没有显示我之后的情况,所以这里是一个非工作尝试:

\documentclass[a4paper]{scrartcl}
\begin{document}

<<setup, include=FALSE, cache=FALSE>>=
library(igraph)
@

<<network>>=
edges <- structure(c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", 
    "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "A", "B", "C", 
    "D", "E", "F", "G", "H", "I", "J", "E", "G", "G", "F", "H", "G", 
    "D", "J", "J", "D", "B", "C", "D", "I", "I", "H", "A", "B", "G", 
    "I", "F", "D", "F", "J", "D", "B", "E", "E", "A", "E"), .Dim = c(30L, …
Run Code Online (Sandbox Code Playgroud)

r igraph knitr tkplot

9
推荐指数
1
解决办法
465
查看次数

在R中使用graph.adjacency()

我在R中有一个示例代码如下:

library(igraph)
rm(list=ls())
dat=read.csv(file.choose(),header=TRUE,row.names=1,check.names=T) # read .csv file
m=as.matrix(dat)
net=graph.adjacency(adjmatrix=m,mode="undirected",weighted=TRUE,diag=FALSE)
Run Code Online (Sandbox Code Playgroud)

我使用csv文件作为输入,其中包含以下数据:

    23732   23778   23824   23871   58009   58098   58256
23732   0   8   0   1   0   10  0
23778   8   0   1   15  0   1   0
23824   0   1   0   0   0   0   0
23871   1   15  0   0   1   5   0
58009   0   0   0   1   0   7   0
58098   10  1   0   5   7   0   1
58256   0   0   0   0   0   1   0
Run Code Online (Sandbox Code Playgroud)

在此之后,我使用以下命令检查重量值:

E(net)$weight
Run Code Online (Sandbox Code Playgroud)

预期输出有点像这样:

> E(net)$weight
 [1] …
Run Code Online (Sandbox Code Playgroud)

plot r graph igraph adjacency-matrix

9
推荐指数
2
解决办法
2万
查看次数

停止在igraph.plot中重叠的节点/顶点

我有一个节点表要在R中绘制并使用,igraph.plot因为它似乎最适合我的需要.

并非我图中的所有节点都已连接,即整个图形的某些部分可能只包含一对连接的节点.我需要生成一系列节点边缘图,所有这些图都在同一图中表示,其中没有顶点重叠.

我尝试了多种布局,但我认为这是因为并非所有节点都相互连接,他们以这种方式绘制...

有没有人知道在没有节点重叠的情况下绘制这些图的方法?

(我试图在下面包含两张图片,但似乎我需要"声望点":/)

先感谢您!

plot r vertices igraph nodes

9
推荐指数
1
解决办法
2461
查看次数

Python igraph:从图中删除顶点

我正在使用enron电子邮件数据集,我正在尝试删除没有"@ enron.com"的电子邮件地址(即我只想发送enron电子邮件).当我试图在没有@enron.com的情况下删除这些地址时,由于某些原因,一些电子邮件被忽略了.下面显示了一个小图,其中顶点是电子邮件地址.这是gml格式:

Creator "igraph version 0.7 Sun Mar 29 20:15:45 2015"
Version 1
graph
[
  directed 1
  node
  [
    id 0
    label "csutter@enron.com"
  ]
  node
  [
    id 1
    label "steve_williams@eogresources.com"
  ]
  node
  [
    id 2
    label "kutner.stephen@enron.com"
  ]
  node
  [
    id 3
    label "igsinc@ix.netcom"
  ]
  node
  [
    id 4
    label "dbn@felesky.com"
  ]
  node
  [
    id 5
    label "cheryltd@tbardranch.com"
  ]
  node
  [
    id 6
    label "slover.eric@enron.com"
  ]
  node
  [
    id 7
    label "alkeister@yahoo.com"
  ]
  node
  [
    id 8
    label "econnors@mail.mainland.cc.tx.us"
  ] …
Run Code Online (Sandbox Code Playgroud)

python graph igraph graph-modelling-language

9
推荐指数
1
解决办法
4439
查看次数

如何在R中绘制二分图

如何在R中绘制二分类型的网络?与此类似:

二部

我有类似的数据,但基因和疾病和SARS的权重.这个网络就是一个例子.我有不同的属性.我在这里关注了一个链接.但是由于我对这个主题的了解不多,我无法从中得到很多.在此先感谢您的帮助.

r social-networking igraph bipartite

9
推荐指数
2
解决办法
1万
查看次数

社区检测算法中权重的含义

还有就是在现有的igraph社区检测算法的比较优秀这里.然而,在算法中使用加权边缘可以应用权重存在一些模糊性.

通常,边缘权重将被定向,使得较高权重建议将节点保持在一起(例如,友谊的强度).通过比较内部和外部的平均加权密度,这与模块化分数很好地协作.

然而,Newman-Girvan社区检测算法使用基于距离的中间性.在这种情况下,我希望边权重应该反映节点之间的距离,以便计算最短路径对路径上的权重求和.也就是说,权重是成本或距离得分,其中较高的值应该分成不同的社区.

在使用Newman-Girvan时,我是否正确期望更高的权重,如果是这样,那么如何通过使用模块化来决定在哪里削减社区数量?

social-networking igraph

9
推荐指数
1
解决办法
824
查看次数