如何理解R语言做网络图的分析
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,如何理解R语言做网络图的分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用R语言包ggraph做网络图需要准备的最基
千家信息网最后更新 2025年01月23日如何理解R语言做网络图的分析使用R语言包ggraph做网络图需要准备的最基本的数据是:
如何理解R语言做网络图的分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
1、一个包括一列数据的数据框,每一行是各个节点的名称
2、一个包含两列数据的数据框,每一行代表节点节点之间的连线
比如一个有四个节点的网络,每个节点是A,B,C,D。两两节点互相连接。数据的样子:> nodes<-data.frame(node=c("A","B","C","D"))
> edges<-data.frame(node1=c("A","A","A","B","B","C"),
+ node2=c("B","C","D","C","D","D"))
> nodes
node
1 A
2 B
3 C
4 D
> edges
node1 node2
1 A B
2 A C
3 A D
4 B C
5 B D
6 C D
>
接下来对这个网络进行可视化library(ggraph)
library(igraph)
net<-graph_from_data_frame(d=edges,vertices = nodes,directed = F)
ggraph(net)+
geom_edge_link()+
geom_node_point()
接下来我想给节点分组,不同组节点填充不同的颜色;按照自己的数值给节点大小;每条连线也可以分配粗细和颜色。这些信息都可以在构造数据的时候添加进去。给节点添加一列分组信息,给每个节点一个数值,用来映射节点大小。
nodes$Group<-c("group_1","group_1","group_2","group_2")
nodes$Size<-c(5,15,10,18)
nodes$Name<-nodes$node
给每条边添加颜色和粗细的映射数值
edges$color<-sample(seq(0,1,by=0.01),6)
edges$width<-sample(1:100,6)
基本图形如下net<-graph_from_data_frame(d=edges,vertices = nodes,directed = F)
ggraph(net)+
geom_edge_link(aes(edge_width=width,edge_color=color))+
geom_node_point(aes(size=Size,color=Group))+
geom_node_text(aes(label=Name))
接下来设置一下细节美化边的渐变色深蓝到浅蓝不太好看,换!加上语句
scale_edge_color_continuous(low = "cyan",high = "red")
ggraph(net)+
geom_edge_link(aes(edge_width=width,edge_color=color))+
geom_node_point(aes(size=Size,color=Group))+
geom_node_text(aes(label=Name))+
scale_edge_color_continuous(low = "cyan",high = "red")
每个节点的点太小了,增大!加上语句
scale_size_area(max_size = 30)
ggraph(net)+
geom_edge_link(aes(edge_width=width,edge_color=color))+
geom_node_point(aes(size=Size,color=Group))+
geom_node_text(aes(label=Name))+
scale_edge_color_continuous(low = "cyan",high = "red")+
scale_size_area(max_size = 30)
点的图例太大了,占了其他图例的位置,不要他了!加上语句
guides(size=F)
ggraph(net)+
geom_edge_link(aes(edge_width=width,edge_color=color))+
geom_node_point(aes(size=Size,color=Group))+
geom_node_text(aes(label=Name))+
scale_edge_color_continuous(low = "cyan",high = "red")+
scale_size_area(max_size = 30)+
guides(size=F)
这里遇到一个问题是:有没有办法改变图例中点的大小呢?
新学到的:还可以改变图例的前后顺序,添加语句
guides(color=guide_legend(order=3))
ggraph(net)+
geom_edge_link(aes(edge_width=width,edge_color=color))+
geom_node_point(aes(size=Size,color=Group))+
geom_node_text(aes(label=Name))+
scale_edge_color_continuous(low = "cyan",high = "red")+
scale_size_area(max_size = 30)+
guides(size=F)+
guides(color=guide_legend(order=3))
虽然点大小的图例删掉了,但是他应该还是站着位置呢!如果想要把颜色图例设置为最后可能得把order设置为4。
有的节点超出了绘图边界,可以通过修改x和y轴的范围来调整,加上命令
theme_bw()
就可以显示出坐标轴的范围
ggraph(net)+
geom_edge_link(aes(edge_width=width,edge_color=color))+
geom_node_point(aes(size=Size,color=Group))+
geom_node_text(aes(label=Name))+
scale_edge_color_continuous(low = "cyan",high = "red")+
scale_size_area(max_size = 30)+
guides(size=F)+
guides(color=guide_legend(order=3))+
theme_bw()+
xlim(-0.8,0.8)+ylim(-0.8,0.8)
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
节点
数据
图例
网络
大小
语句
颜色
接下来
数值
语言
一行
位置
信息
粗细
范围
分组
帮助
不同
好看
清楚
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库维护工作定期备份
access数据库口号
互联网科技节logo
怀旧服务器p2毕业元素萨
免费云sql数据库
如何贯彻网络安全法
江苏c语言软件开发多少钱
财务软件开发标准
服务器运维压力大
联想服务器怎么样关闭
济宁ios软件开发外包公司
软件开发 对象
服务器开不开机
需要网络验证的网络安全性是什么
u8文件服务器如何清理
网络技术包括办公自动化嘛
网络技术和移动技术的差别
数据库解除脱机状态
信息安全中数据库安全
甲骨文数据库技术维保
人才需求智能应用软件开发
数据库模块设计方案
华为软件开发工程师硕士待遇
山西多功能网络技术服务常见问题
金山区管理软件开发内容
高清瓷砖软件开发
软件开发公司考勤制度
数据库商品信息表
交警网络安全管理岗
怎么登陆文件服务器