我在 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)
为了强调,我在这里模糊地填充了多边形,但如果你不想要这个,你可以将 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)
关于r - UMAP 图中的凸包 - R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62503904/