R 中的 HDBSCAN 可视化应用文本标签而不是数字
HDBSCAN Visualization in R to apply text labels instead of numbers
我正在尝试通过 largeVis 包在 R 中 运行 HDBSCAN 算法。用于集群的可视化。我在 largeVis 中使用 gplot 函数。是否可以将图中数据点的标签从整数更改为字符串?我使用 Iris 数据集,在 "class" 列中稍作修改,并使用 "class" 列作为行 headers。是否可以在图中可视化我当前的行 headers 而不是节点编号?
x1 <- iris[,-5]
row.names(x1) <- paste0("Iris-", iris[,5], " ", 1:nrow(x1))
View(x1)
vis <- largeVis::largeVis(x1)
clustering <- largeVis::hdbscan(vis)
largeVis::gplot(clustering,t(vis$coords), text = TRUE)
函数本身没有一个简单的选项来绘制行名,它确实 return 一个 ggplot
对象,您可以向其添加额外的图层。以下是如何使用 rownames
绘图
library(ggplot2)
pp <- largeVis::gplot(clustering,t(vis$coords), text = FALSE) +
geom_label(aes(label=rownames(x1)[label+1]), size=2.5, label.size=0.1, alpha=0.7)
它在内部构建一个 data.frame 并为每个节点编制索引(出于某些非 R 类原因)0。我们可以使用该索引来查找该观察的行名并将其用作标签。在这里,我保留了基本函数中默认选项使用的大部分样式。
我正在尝试通过 largeVis 包在 R 中 运行 HDBSCAN 算法。用于集群的可视化。我在 largeVis 中使用 gplot 函数。是否可以将图中数据点的标签从整数更改为字符串?我使用 Iris 数据集,在 "class" 列中稍作修改,并使用 "class" 列作为行 headers。是否可以在图中可视化我当前的行 headers 而不是节点编号?
x1 <- iris[,-5]
row.names(x1) <- paste0("Iris-", iris[,5], " ", 1:nrow(x1))
View(x1)
vis <- largeVis::largeVis(x1)
clustering <- largeVis::hdbscan(vis)
largeVis::gplot(clustering,t(vis$coords), text = TRUE)
函数本身没有一个简单的选项来绘制行名,它确实 return 一个 ggplot
对象,您可以向其添加额外的图层。以下是如何使用 rownames
library(ggplot2)
pp <- largeVis::gplot(clustering,t(vis$coords), text = FALSE) +
geom_label(aes(label=rownames(x1)[label+1]), size=2.5, label.size=0.1, alpha=0.7)
它在内部构建一个 data.frame 并为每个节点编制索引(出于某些非 R 类原因)0。我们可以使用该索引来查找该观察的行名并将其用作标签。在这里,我保留了基本函数中默认选项使用的大部分样式。