0

给定以下代码,使用可通过以下方式获得的 ggbiplot 库devtools::install.github()

library(ggbiplot)
data(iris)
log.ir <- log(iris[, 1:4])
ir.species <- iris[, 5]

ir.pca <- prcomp(log.ir, center = TRUE, scale. = TRUE)

g <- ggbiplot(ir.pca, obs.scale = 1, var.scale = 1, groups = ir.species)
g <- g + theme(legend.direction = 'vertical', legend.position = 'right')
g <- g + scale_color_manual(values=c("blue", "red", "green"))
print(g)

根据分组自定义数据点边界的最佳方法是什么?我使用 scale_color_manual() 来自定义这些数据点的颜色,但我想不出一种方法来为边框做到这一点。

谢谢

4

1 回答 1

0

假设您想自己调整数据点的边框......

ggbiplot()调用本身不会为您提供这种灵活性,但设置将使alpha = 0绘制的点ggbiplot不可见或真正 100% 透明。然后,您可以通过调用创建一个单独的图层,在geom_point()其中指定shape为具有填充(中间)和颜色(边界)美学的 5 个形状 (21-25) 之一。

ggbiplot(ir.pca, obs.scale = 1, var.scale = 1, groups = ir.species, alpha = 0) +
    theme(legend.direction = 'vertical', legend.position = 'right') + 
    scale_color_manual(values=c("blue", "red", "green")) +
    scale_fill_manual(values = c("red", "green", "blue")) + # just offset by one to show
    geom_point(size = 3, shape = 21, aes(fill = groups, color = groups))

在此处输入图像描述

PS在您的问题中包含您正在使用的软件包仅可通过devtools::install.github()而不是标准获得可能总是一个好主意install.packages()

于 2016-11-02T20:07:23.177 回答