使stat_ellipse {ggplot2}轮廓geom_point填充颜色

时间:2020-04-15 19:11:42

标签: r ggplot2

我有一个包含15个分组的散点图。我将geom_point()shape = 21一起使用,以便可以具有填充和颜色(轮廓颜色)。我将黑色用作轮廓色,以便在图例中的相似颜色之间提供更好的对比度。但是,当我添加stat_ellipse()时,它将使椭圆轮廓变黑。

我要这个,要点周围有黑色轮廓:

groupings <- paste0("Group", 1:15)
iris$group <- rep(groupings, 10)

iris_plot <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + geom_point(aes(Sepal.Length, Sepal.Width, colour = factor(iris$group))) + stat_ellipse(data = iris, aes(color = factor(iris$group)))

iris_plot

stat_ellipse same color as geom_point

但是,当我在这些点周围添加黑色轮廓时,它会使椭圆变成黑色,使其无法解释。

library(RColorBrewer)

groupings <- paste0("Group", 1:15)
iris$group <- rep(groupings, 10)

fill_colors <- scales::hue_pal()(15)
outline_colors <- rep("black", 15)

iris_plot <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width)) + geom_point(aes(Sepal.Length, Sepal.Width, colour = factor(iris$group), fill = factor(iris$group)), shape = 21) + stat_ellipse(data = iris, aes(color = factor(iris$group))) + scale_colour_manual(name = "Grouping", labels = sort(unique(factor(iris$group))), values = outline_colors) + scale_fill_manual(name = "Grouping", labels = sort(unique(factor(iris$group))), values = fill_colors)

iris_plot

stat_ellipse takes geom_point outline color 我不需要填充色,因为椭圆之间有太多重叠,以至于看不到任何东西。

谢谢您的时间。

1 个答案:

答案 0 :(得分:4)

我认为您需要将color外的aes传递给geom_point,否则当您申请scale_color_manual时,它将同时适用于geom_point和{ {1}}:

stat_ellipse

enter image description here