这是我用来测试的数据,在graph.txt中:
1 2
1 3
2 5
3 4
3 5
4 5
5 6
5 10
6 7
7 8
7 9
7 12
8 9
9 10
9 4
9 12
10 11
11 2
11 12
我使用graph.data.frame
绘制有向图。代码是:
xlist<-read.table("graph.txt")
xlist <- graph.data.frame(xlist)
plot(xlist)
它只能绘制如下图形
但我只想绘制起点为5
,即5->6->...
和“5->10->...
,我该如何做到这一点
答案 0 :(得分:1)
使用igraph
包,以下工作:
xlist<-read.table("graph.txt")
xlist.sub <- subset(xlist,V1>=5)
xlist.sub <- graph.data.frame(xlist.sub)
plot(xlist.sub)
从数据框中删除具有小于5的节点作为其根的所有列就足够了。在应用graph.data.frame
之前进行子集化非常重要。
答案 1 :(得分:1)
有很多方法可以排除1到4.这是另一种方法:
xlist<-read.table(text = "1 2
1 3
2 5
3 4
3 5
4 5
5 6
5 10
6 7
7 8
7 9
7 12
8 9
9 10
9 11
9 12
10 11
11 7
11 12")
library(igraph)
g <- graph.data.frame(xlist)
set.seed(1)
coords <- layout.fruchterman.reingold(g)
par(mfrow = c(1, 2))
plot(g, layout = coords)
plot(induced.subgraph(g, setdiff(V(g), 1:4)),
layout = coords[-(1:4), ])