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

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

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

Iris_modified行标题

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

在这里输入图像描述


该函数本身没有一个简单的选项来绘制ggplot ,它返回一个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类的原因)。我们可以使用该索引来查找rowname,并将其用作标签。 在这里,我保留了基本函数中默认选项所使用的大部分样式。

在这里输入图像描述

链接地址: http://www.djcxy.com/p/30961.html

上一篇: HDBSCAN Visualization in R to apply text labels instead of numbers

下一篇: How to change appearance of table header row with R formattable package