2017-09-26 26 views
2

我的网络数据的数据如下:树图中的igraphř格式化

library(igraph) 

dnode<-c("a","b","c","d","e","f","g","h","i","j","k") 

dedge<-data.frame("From"=c("a","b","c","d","e","f","f","f","f","f"), "To"=c("f","f","f","f","f","g","h","i","j","k")) 

当我在RI写入代码绘制它如下:

net <- graph_from_data_frame(d=dedge, vertices=dnode, directed=T) 

l<- layout_as_tree 

plot(net, vertex.shape="square", layout=l, edge.arrow.mode=2, edge.arrow.width=2, edge.arrow.size=0.1) 

我得到的输出是这样的:

enter image description here

我想这样的输出:

enter image description here

回答

1

尝试使用Sugiyama布局。语法与其他布局有点不同。不是将网络传递给plot,而是将其布局设置为layout参数,而不传递layout$extd_graph并且没有布局参数。我发现Sugiyama布局在使用分层布局时更灵活。

l <- layout_with_sugiyama(net) 
plot(l$extd_graph, 
    vertex.shape="square", 
    vertex.label=as_ids(V(net)), 
    edge.arrow.mode=2, 
    edge.arrow.width=2, 
    edge.arrow.size=0.1) 

enter image description here

+0

太感谢你了,它确实帮助了很多。 – Vinod

+0

如何增加两个顶点之间的空间。在上面的例子中,我们有5个顶点和5个顶点。当我尝试绘制25-30个顶点时,它们彼此重叠并且不可见。如果我使用“hgap”,它只接受两个值0或1。 – Vinod