r - UMAP 图中的凸包 - R

标签 r

我在 wine 数据集上执行了一个 UMAP,并使用 ggpubr stat_chull 选项添加了一个凸包。凸包似乎没有关闭,我该如何解决?我可以使用任何其他包吗?

library(ggplot2)
library(ggpubr)
library(Rtsne)
library(umap)

UCI <- "ftp://ftp.ics.uci.edu/pub"
REPOS <- "machine-learning-databases"
w.url <- sprintf("%s/%s/wine/wine.data", UCI, REPOS)
w <- read.csv(w.url, header=F) 
colnames(w) <- c('Type', 'Alcohol', 'Malic', 'Ash', 
                    'Alcalinity', 'Magnesium', 'Phenols', 
                    'Flavanoids', 'Nonflavanoids',
                    'Proanthocyanins', 'Color', 'Hue', 
                    'Dilution', 'Proline')
w$Type <- as.factor(w$Type)


####For UMAP 
w.umap = umap(w[,2:14])
w.labels = w$Type

head(w.umap$layout, 3)

df <- data.frame(x = w.umap$layout[,1],
                 y = w.umap$layout[,2],
                 wType = w.labels)
ggplot(df, aes(x, y, colour = wType)) + geom_point(size=3) + ggtitle("UMAP") + stat_chull(aes(color = w.labels))

最佳答案

stat_chull 的默认几何体是一条线而不是多边形。如果更改为多边形,它将自动连接两端:

ggplot(df, aes(x, y, colour = wType)) + geom_point(size=3) + 
  ggtitle("UMAP") + 
  stat_chull(aes(color = w.labels, fill = wType), geom = "polygon", alpha = 0.1)
enter image description here
为了强调,我在这里模糊地填充了多边形,但如果你不想要这个,你可以将 alpha 设置为 0:
ggplot(df, aes(x, y, colour = wType)) + geom_point(size=3) + 
  ggtitle("UMAP") + 
  stat_chull(aes(color = w.labels, fill = wType), geom = "polygon", alpha = 0, size = 2)
enter image description here

关于r - UMAP 图中的凸包 - R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62503904/

相关文章:

r - 选择 R 列表中每个数据集的子集

r - 用逗号千位分隔符和指定的小数在R中格式化数字

r - ggplot 到 ggplotly 不适用于自定义的 geom_boxplot 宽度

r - 长时间使用 mongo.find.all (rmongodb) 导入数据

r - 如何为内部泛型的方法添加额外的参数?

r - 如何在模块化 Shiny 应用程序中连接 AWS S3 凭证

r - 将 mob() 树(partykit 包)与 Logistic() 模型结合使用

r - 使用 R 计算 f 统计量的 p 值

以并行模式运行具有多个参数的 R 函数

r - 顺序错误(datastate$c): argument 1 is not a vector