全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2996 2
2020-08-20
求助大家,现在手边有一个48*48的邻接矩阵,想要用R来画网络图,要求节点的大小是每一列数据的和,箭头指的是个体与个体(个体在网络图中用节点来表示)的影响。请问在R中用什么代码可以实现呢?还有就是——请问有没有大神用过R语言中的graph from adjency函数呀,小弟有些问题求教,在此多谢各位了!!!!
二维码

扫码加我 拉你入群

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

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

全部回复
2020-8-20 18:25:59
我整理的文库里有用igraph画网络图的代码 你把节点大小做成一个矩阵 改一下vertex size代码 应该可以实现你的想法 自己琢磨一下igraph里的函数吧

在那个示例中,在udG<-graph_from_adjacency_matrix语句之后,增加以下代码

newM<-matrix(as.integer(adjMtrx),nrow=dim(adjMtrx)[1]) #这两句只针对示例的数据
newM[is.na(newM)]<-0
vsize<-apply(newM,MARGIN=2,FUN=sum) #重点是这两句,之前的两句是因为读入数据有NA,且矩阵是char类型,计算加总前需要改成数值型
V(udG)$size <- vsize #这个是赋值给节点


这样,就可以按照各列的和确定节点大小了
然后,画图的plot语句中,把 vertex.size = 4, 这个参数删除掉,把vertex.label.cex = 1.8参数的数值改成合适的,比如0.5,
就可以实现你的想法了

二维码

扫码加我 拉你入群

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

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

2020-8-27 11:56:39
llb_321 发表于 2020-8-20 18:25
我整理的文库里有用igraph画网络图的代码 你把节点大小做成一个矩阵 改一下vertex size代码 应该可以实现你 ...
谢谢您,我先钻研一下
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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