自定义 ggbiplot 点的边框

Customize border of ggbiplot points

使用 devtools::install.github() 提供的 ggbiplot 库给出以下代码:

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() 来自定义这些数据点的颜色,但我想不出一种方法来为边框执行此操作。

谢谢

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

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()

可能总是一个好主意