在 R 中使用 igraph 和 networkD3 进行树状图可视化
Dendrogram visualisation with igraph and networkD3 in R
我有一个名为 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
的节点和一组未命名的节点。像这样:
您可以在as.radialNetwork
函数中将根节点名称设置为零长度字符串...
library(networkD3)
hc <- hclust(dist(USArrests), "ave")
rad <- as.radialNetwork(hc, '')
radialNetwork(List = rad)
如果没有 minimal reproducible example,我看不到你的对象 g
是什么,所以我无法解释为什么你的节点没有被标记,但我怀疑这发生在你的 cluster_fast_greedy
函数或 as.hclust
函数。 hc$labels
应该在您进入 as.radialNetwork
功能之前显示您的标签设置(或未设置)的内容。
我有一个名为 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
的节点和一组未命名的节点。像这样:
您可以在as.radialNetwork
函数中将根节点名称设置为零长度字符串...
library(networkD3)
hc <- hclust(dist(USArrests), "ave")
rad <- as.radialNetwork(hc, '')
radialNetwork(List = rad)
如果没有 minimal reproducible example,我看不到你的对象 g
是什么,所以我无法解释为什么你的节点没有被标记,但我怀疑这发生在你的 cluster_fast_greedy
函数或 as.hclust
函数。 hc$labels
应该在您进入 as.radialNetwork
功能之前显示您的标签设置(或未设置)的内容。