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

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)

最佳答案

该函数本身没有一个简单的选项来绘制行名,它确实会返回一个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并索引每个节点的起始位置(出于某种非常类似于R的原因)。我们可以使用该索引来查找该观察的行名并将其用作标签。在这里,我保留了基本函数中默认选项所使用的大多数样式。

r - R中的HDBSCAN可视化以应用文本标签代替数字-LMLPHP

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

10-12 17:09
查看更多