在R中使用igraph和networkD3进行树状图可视化

时间:2017-05-13 07:41:55

标签: r igraph networkd3

我有一个名为g的igraph(R)图形对象,如下所示:

IGRAPH UNW- 6 5 -- 
+ attr: name (v/c), weight (e/n)
+ edges (vertex names):
[1] 1--4 1--5 1--6 4--2 3--5

我像这样运行聚类:

c1 <-  cluster_fast_greedy(g)
然后我将它转换为像这样的hclust对象:

hc <-  as.hclust(c1)

此时检查标签会产生:

> hc$labels
[1] "1" "4" "3" "5" "6" "2"

然后使用networkD3,我将其转换为radialNetwork

rad <- as.radialNetwork(hc)

我用(例如)绘制它:

D3graph <- radialNetwork(List = rad, 
                         fontSize = 10, 
                         opacity = 0.8, 
                         margin=1, 
                         fontFamily = "sans-serif",
                         nodeColour = "grey",
                         nodeStroke = "white"
                         )

但是一个名为hc的节点和一组未命名的节点在树形图中出现。像这样:enter image description here

1 个答案:

答案 0 :(得分:1)

您可以将as.radialNetwork函数中的根节点名称设置为零长度字符串...

library(networkD3)
hc <- hclust(dist(USArrests), "ave")
rad <- as.radialNetwork(hc, '')
radialNetwork(List = rad)

如果没有minimal reproducible example,我无法看到你的对象g是什么,所以我无法解释为什么你的节点没有标记,但我怀疑你的{{1}函数或cluster_fast_greedy函数。 as.hclust应该在您到达hc$labels函数之前显示您的标签设置(或未设置)的内容。