0

我正在尝试使用 R 中的 visIgraph 函数绘制一个 igraph 对象,该函数有一个参数布局,它接受一个字符串输入。但是,我想要一个具有特定根节点的 layout_as_tree,例如在 igraph 上绘图时如何实现。

4

1 回答 1

1

您没有提供任何数据来绘制,所以我将制作一个简单的树作为说明。

library(igraph)
library(visNetwork)

## Basic tree
EL = matrix(c(1,2,1,3,2,4,2,5,3,6,3,7), byrow=TRUE, ncol=2)
Tree = graph_from_edgelist(EL)

有两种方法可以使用igraph布局来使用visIgraph.

1 传入要使用的布局函数

visIgraph(igrap=Tree, layout="layout_as_tree", flip.y=FALSE, root=1)

额外的参数flip.y=FALSE, root=1被传递给函数layout_as_tree

2 首先创建布局并将布局矩阵传递给visIgraph

此版本允许您查看布局并根据需要进行调整。

LO = layout_as_tree(Tree, root =1, flip.y=FALSE)
visIgraph(Tree, layout='layout.norm', layoutMatrix=LO)

两个版本都创建了这个图。

树形图

编辑 - 回应对 100 个节点的评论

当然,你只能在屏幕上显示这么多节点,仍然可以看到发生了什么,但是在 100 个节点上,我使用type="full".

T100 = make_tree(100)
LO = layout_as_tree(T100, root =1, flip.y=FALSE)
visIgraph(T100, type="full", layout='layout.norm', layoutMatrix=LO)

100 个节点

于 2018-02-06T14:11:51.770 回答