文档库 最新最全的文档下载
当前位置:文档库 › r语言做的社交网络图完整代码

r语言做的社交网络图完整代码

########主题及其实现#########
Phone_number=read.csv("callall.csv",header=F)

tnames=names(table(c(names(table(Phone_number$V1)),names(table(Phone_number$V2)))))
#from <- as.character(Phone_number[,1])
#to<-as.character(Phone_number[,2])
library(igraph)
phoneNet <- graph.empty()
phoneNet <- add.vertices(phoneNet, length(tnames),
calling=as.character(Phone_number[,1]), called=Phone_number[,2]
)#顶点个数为排列好的个数!

ids <- 1:length(tnames)
names(ids) <- tnames
ids

from <- as.character(Phone_number[,1])
to <- as.character(Phone_number[,2])
edges <- matrix(c(ids[from], ids[to]), nc=2)#边的对接关系

phoneNet <- add.edges(phoneNet, t(edges))
phoneNet=as.undirected(phoneNet)#将其替换成无向图

cent<-data.frame(bet=betweenness(phoneNet),eig=evcent(phoneNet)$vector)#bet中间性,eig特征向量中心性
res<-lm(eig~bet,data=cent)$residuals#误差
cent<-transform(cent,res=res)#将误差大小作为关键的分析依据
#######绘制图表##########
library(ggplot2)
p<-ggplot(cent,aes(x=bet,y=eig,
label=rownames(cent),colour=res,
size=abs(res)))+xlab("Betweenness
Centrality")+ylab("Eigenvector
Centrality")
p+geom_text()+opts(title="Key Actor Analysis for phoneNet number Users")
#geom_text()为了显示在那个地方是哪个点,而不是用简单的一个原点表示哈哈



#######绘制网络图##########

l<-layout.fruchterman.reingold(phoneNet,niter=500)
V(phoneNet)$size<-abs(res)*10
nodes<-as.vector(V(phoneNet))#不用加1吧?
#nodes[which(abs(res)<.15)]<-NA
nodes[which(betweenness(phoneNet)<10000)]<-NA
pdf('actor_plot3.pdf',pointsize=7)

plot(phoneNet,layout=l,https://www.wendangku.net/doc/1012283490.html,bel=nodes,https://www.wendangku.net/doc/1012283490.html,bel.dist=0.25,https://www.wendangku.net/doc/1012283490.html,bel.color='red',edge.width=1)
#https://www.wendangku.net/doc/1012283490.html,bel=nodes用来赋值,将nodes来标示点;https://www.wendangku.net/doc/1012283490.html,bel.dist标示值离点距离。
dev.off()







相关文档
相关文档 最新文档