全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
6290 3
2014-05-16
        程序随机产生连接网络,网络里有两个聚类,改变随机数种子可以改变网络,最后程序画了个3D版的网络图。
#buid woman-event matrix
library(igraph)
nEvent<-14;
nWoman<-18;
set.seed(4)#fix the random numbers
cross.m<-matrix(rep(0,nEvent*nWoman),nrow=nWoman)
w<-rep(0,nWoman)
for (i in 1:nWoman)
  w<-round(runif(1,1,4)); # ith woman attends w number of events
#simulate two groups of weman attend two groups of events
for (i in 1:nWoman/2){
  ind<-round(runif(w,1,6));
  cross.m[i,ind]<-1 #rep(1,length(ind));
}
#group2,
for (i in (nWoman/2+1):nWoman){
  ind<-round(runif(w,nEvent/2-2,nEvent));
  cross.m[i,ind]<-1 #rep(1,length(ind));
}
#calculate the adjacency matrix for events with comman attendance
adj.m<-t(cross.m)%*%cross.m
print(adj.m)
#diagnal is non-zero. but it is ok
#for (i in 1:n_event)
#  connection_m[i,i]=0;
g<-graph.adjacency(adj.m,mode="undirected",weighted=TRUE,diag=FALSE)
V(g)$label=paste("e",1:14,sep="")
V(g)$color="green"
V(g)$size=8
V(g)$label.dist=0.6
V(g)$label.font=2
V(g)$label.degree=pi/2
V(g)$frame.color="gray"
plot(g,layout=layout.fruchterman.reingold,edge.width=E(g)$weight,
     vertex.shape="square")
#3d network plot, just for fun. it requires rgl packege
library(rgl)
rglplot(g,layout=layout.fruchterman.reingold(g,dim=3),
        edge.width=E(g)$weight)


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-5-18 12:46:10
谢谢分享。

个人表示,用RGL的图的确只是for fun,没有用igraph本身的画图功能使用。
楼主你的code里面那些$被打成tex的格式了,建议重新上传code。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-28 17:25:05
挺难弄的啊
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-8-29 10:19:57
贴图吗 不能
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群