用graph_from_data_frame绘制igraph中的孤立节点。失踪

时间:2017-06-25 13:26:21

标签: r igraph

我正在处理带有“from”和“to”列的data.frames,我想从中创建网络图。

例如:

mydata <- data.table(from=c("John", "John", "Jim", "Jesse"),
   to=c("John", "Jim", "Jack", NA))
mygraph <- graph_from_data_frame(d=mydata, directed=T)
plot(mygraph, vertex.label.dist=2) 

该NA的存在会产生错误。

如果我只删除NA行,则不会绘制孤立节点。

mydata <- data.table(from=c("John", "John", "Jim"),to=c("John", "Jim", "Jack"))
mygraph <- graph_from_data_frame(d=mydata, directed=T)
plot(mygraph, vertex.label.dist=2) 

enter image description here

我希望得到与以下相同的结果:

g4 <- graph( c("John", "Jim", "Jim",  "Jack", "John", "John"), isolates=c("Jesse") )  
plot(g4,  vertex.label.dist=2) 

enter image description here

但使用两列,from和to。 我怎样才能得到相同的结果? 当“from”或“to”中的任何一个为NA时,则只绘制没有边缘的节点而不产生错误。

1 个答案:

答案 0 :(得分:1)

获得所需内容的一种方法是省略单个节点,然后使用add_vertices

添加它
library(igraph)
mydata <- data.frame(from=c("John", "John", "Jim"),
   to=c("John", "Jim", "Jack"))
mygraph <- graph_from_data_frame(d=mydata, directed=T)
mygraph = add_vertices(mygraph, 1, name="Jesse")
plot(mygraph, vertex.label.dist=2) 

enter image description here