gpt4 book ai didi

r - R 中的 HDBSCAN 可视化应用文本标签而不是数字

转载 作者:行者123 更新时间:2023-11-30 09:20:03 25 4
gpt4 key购买 nike

我正在尝试通过largeVis包在R中运行HDBSCAN算法。用于集群的可视化。我在largeVis中使用gplot函数。是否可以将图中数据点的标签从整数更改为字符串?我使用的 Iris 数据集在“class”列中几乎没有修改,并使用“class”列作为行标题。是否可以在图中可视化当前的行标题而不是节点号?

x1 <- iris[,-5]
row.names(x1) <- paste0("Iris-", iris[,5], " ", 1:nrow(x1))
View(x1)

Iris_modified row headers

vis <- largeVis::largeVis(x1)
clustering <- largeVis::hdbscan(vis)
largeVis::gplot(clustering,t(vis$coords), text = TRUE)

enter image description here

最佳答案

该函数本身没有一个简单的选项来绘制行名,但它确实返回一个 ggplot 对象,您可以向其添加其他图层。以下是如何使用行名进行绘图

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 并为每个节点从 0 开始索引(出于一些非常非 R 的原因)。我们可以使用该索引来查找该观察结果的行名并将其用作标签。在这里,我保留了基本函数中默认选项使用的大部分样式。

enter image description here

关于r - R 中的 HDBSCAN 可视化应用文本标签而不是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43102501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com