R語(yǔ)言中igraph包的用法(鄰接矩陣)
先導(dǎo)入igraph包:
library(igraph)
graph包最簡(jiǎn)單的用法就是graph方法,兩句代碼就完成繪制如下所示,1的loop表示為(1,1),1和2之間有3條edge,表示為(1,2,1,2,1,2)
g <- graph(c(1,1,1,2,1,2,1,2,1,5,2,3,2,4,2,5,3,3,3,4,3,4,3,4,4,5),directed = FALSE) plot(g)

如果用頂點(diǎn)的鄰接矩陣表示,仍以上圖為例:
則對(duì)1,1有l(wèi)oop,與2有條edge,與5有一條edge,所以鄰接矩陣的第一行為(1,3,0,0,1);
類似地,可以得出鄰接矩陣的第2、3、4、5行;按列輸入上述矩陣:
cell <- c(1,3,0,0,1,3,0,1,1,1,0,1,1,3,0,0,1,3,0,1,1,1,0,1,0) cell <- matrix(cell,5,5,byrow=T)
使用graph.adjacency方法:
cnames <- c('a','b','c','d','e')
g <- graph.adjacency(cell,mode="undirected")plot(g,vertex.label=cnames)#繪出圖像

補(bǔ)充:R語(yǔ)言學(xué)習(xí)-提取igraph的節(jié)點(diǎn)和邊
網(wǎng)絡(luò)分析的時(shí)候,可能需要提取出網(wǎng)絡(luò)中的節(jié)點(diǎn)或者邊,igraph包中其實(shí)提供了很多可用的函數(shù)。
#創(chuàng)建網(wǎng)絡(luò)方法之一:data.frame data<-data.frame(id1=c(1,1,2,3,4,4,5,5,6,6,7,8,8,9,10,5,15,6,7,16),id2=c(2,11,11,12,13,14,15,16,7,15,16,17,18,18,9,19,19,19,19,19)) g <- graph_from_data_frame(data, directed=FALSE) #directed 參數(shù)控制graph 有無方向 g IGRAPH UN-- 16 17 -- + attr: name (v/c) + edges (vertex names): [1] 1 --2 2 --3 3 --4 1 --4 5 --7 5 --6 5 --8 7 --6 7 --8 6 --8 9 --10 9 --13 11--10 11--12 12--13 14--15 1 --16 #圖形顯示 plot(g)

#V(g)和E(g)可以用來查看網(wǎng)絡(luò)g的節(jié)點(diǎn)和邊
V(g)
+ 16/16 vertices, named:
[1] 1 2 3 5 7 6 9 11 12 14 16 4 8 10 13 15
E(g)
+ 17/17 edges (vertex names):
[1] 1 --2 2 --3 3 --4 1 --4 5 --7 5 --6 5 --8 7 --6 7 --8 6 --8 9 --10 9 --13 11--10 11--12 12--13 14--15 1 --16
#但問題是怎么將里面的數(shù)據(jù)提取出來放到變量里面呢?
#節(jié)點(diǎn)提取有個(gè)函數(shù)get.vertex.attribute(g)
get.vertex.attribute(g)
$name
[1] "1" "2" "3" "5" "7" "6" "9" "11" "12" "14" "16" "4" "8" "10" "13" "15"
#查看類型可知是list
class(get.vertex.attribute(g))
[1] "list"
#剩下的就簡(jiǎn)單了
node<-get.vertex.attribute(g)[[1]]
node
[1] "1" "2" "3" "5" "7" "6" "9" "11" "12" "14" "16" "4" "8" "10" "13" "15"
#至于邊呢?可以使用get.edgelist()
get.edgelist(g)
[,1] [,2]
[1,] "1" "2"
[2,] "2" "3"
[3,] "3" "4"
[4,] "1" "4"
[5,] "5" "7"
[6,] "5" "6"
[7,] "5" "8"
[8,] "7" "6"
[9,] "7" "8"
[10,] "6" "8"
[11,] "9" "10"
[12,] "9" "13"
[13,] "11" "10"
[14,] "11" "12"
[15,] "12" "13"
[16,] "14" "15"
[17,] "1" "16"
#類型是matrix矩陣可以直接使用
class(get.edgelist(g))
[1] "matrix"
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
R語(yǔ)言實(shí)現(xiàn)對(duì)數(shù)據(jù)框按某一列分組求組內(nèi)平均值
這篇文章主要介紹了R語(yǔ)言實(shí)現(xiàn)對(duì)數(shù)據(jù)框按某一列分組求組內(nèi)平均值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-03-03
R語(yǔ)言關(guān)于協(xié)方差分析實(shí)例分析
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于R語(yǔ)言關(guān)于協(xié)方差分析實(shí)例分析內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。2021-05-05
R語(yǔ)言數(shù)據(jù)可視化繪圖Slope chart坡度圖畫法
這篇文章主要為大家介紹了R語(yǔ)言數(shù)據(jù)可視化繪圖Slope?chart坡度圖的畫法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-02-02
R語(yǔ)言繪圖時(shí)輸出希臘字符上下標(biāo)及數(shù)學(xué)公式實(shí)現(xiàn)方法
這篇文章主要為大家介紹了R語(yǔ)言進(jìn)行繪圖時(shí)輸出希臘字符上標(biāo),下標(biāo)及數(shù)學(xué)公式的實(shí)現(xiàn)方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-11-11
R繪制漂亮的中國(guó)地圖的實(shí)現(xiàn)示例
本文主要介紹了R繪制漂亮的中國(guó)地圖的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09

