溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何理解R語言做網(wǎng)絡(luò)圖的分析

發(fā)布時(shí)間:2021-11-22 14:49:01 來源:億速云 閱讀:611 作者:柒染 欄目:大數(shù)據(jù)

如何理解R語言做網(wǎng)絡(luò)圖的分析,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

 使用R語言包ggraph做網(wǎng)絡(luò)圖需要準(zhǔn)備的最基本的數(shù)據(jù)是:

1、一個(gè)包括一列數(shù)據(jù)的數(shù)據(jù)框,每一行是各個(gè)節(jié)點(diǎn)的名稱 

2、一個(gè)包含兩列數(shù)據(jù)的數(shù)據(jù)框,每一行代表節(jié)點(diǎn)節(jié)點(diǎn)之間的連線

 比如一個(gè)有四個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò),每個(gè)節(jié)點(diǎn)是A,B,C,D。兩兩節(jié)點(diǎn)互相連接。數(shù)據(jù)的樣子:
> 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
>
   接下來對這個(gè)網(wǎng)絡(luò)進(jìn)行可視化
library(ggraph)
library(igraph)
net<-graph_from_data_frame(d=edges,vertices = nodes,directed = F)
ggraph(net)+
 geom_edge_link()+
 geom_node_point()
 
如何理解R語言做網(wǎng)絡(luò)圖的分析  
image.png
 接下來我想給節(jié)點(diǎn)分組,不同組節(jié)點(diǎn)填充不同的顏色;按照自己的數(shù)值給節(jié)點(diǎn)大??;每條連線也可以分配粗細(xì)和顏色。這些信息都可以在構(gòu)造數(shù)據(jù)的時(shí)候添加進(jìn)去。

給節(jié)點(diǎn)添加一列分組信息,給每個(gè)節(jié)點(diǎn)一個(gè)數(shù)值,用來映射節(jié)點(diǎn)大小。

nodes$Group<-c("group_1","group_1","group_2","group_2")
nodes$Size<-c(5,15,10,18)
nodes$Name<-nodes$node
 

給每條邊添加顏色和粗細(xì)的映射數(shù)值

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))
 
如何理解R語言做網(wǎng)絡(luò)圖的分析  
image.png
 接下來設(shè)置一下細(xì)節(jié)美化

邊的漸變色深藍(lán)到淺藍(lán)不太好看,換!加上語句

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")
 

如何理解R語言做網(wǎng)絡(luò)圖的分析每個(gè)節(jié)點(diǎn)的點(diǎn)太小了,增大!加上語句

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)
 

如何理解R語言做網(wǎng)絡(luò)圖的分析點(diǎn)的圖例太大了,占了其他圖例的位置,不要他了!加上語句

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)
 
如何理解R語言做網(wǎng)絡(luò)圖的分析  
image.png

這里遇到一個(gè)問題是:有沒有辦法改變圖例中點(diǎn)的大小呢?

新學(xué)到的:還可以改變圖例的前后順序,添加語句

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))
 

如何理解R語言做網(wǎng)絡(luò)圖的分析雖然點(diǎn)大小的圖例刪掉了,但是他應(yīng)該還是站著位置呢!如果想要把顏色圖例設(shè)置為最后可能得把order設(shè)置為4。 

有的節(jié)點(diǎn)超出了繪圖邊界,可以通過修改x和y軸的范圍來調(diào)整,加上命令

theme_bw()就可以顯示出坐標(biāo)軸的范圍

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)
 
如何理解R語言做網(wǎng)絡(luò)圖的分析    

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI