在 ggplot 中围绕属于因子水平的点绘制圆圈

Bra*_*rad 1 plot r ggplot2 anomaly-detection

上一篇文章描述了如何在 ggplot 中超出给定值的点周围绘制红色圆圈。我想对异常检测结果执行相同的操作,但是在属于给定因子级别的点周围绘制圆圈。

我如何更改此代码以允许在给定因子水平周围绘制圆圈?

ggplot(mtcars, aes(wt, mpg)) + 
  geom_point() +
  geom_point(data=mtcars[mtcars$mpg>30,],
             pch=21, fill=NA, size=4, colour="red", stroke=1) +
  theme_bw()
Run Code Online (Sandbox Code Playgroud)

ale*_*555 5

您所需要做的就是首先绘制所有点,然后仅绘制缩小到您想要突出显示的因子水平的数据的圆圈。这能解决您的问题吗?

ggplot() + 
      geom_point(data=iris, aes(Sepal.Length, Sepal.Width)) +
      geom_point(data=iris[iris$Species %in% c("setosa"),], aes(Sepal.Length, Sepal.Width),
                 pch=21, fill=NA, size=4, colour="red", stroke=1) +
      theme_bw()
Run Code Online (Sandbox Code Playgroud)

请注意,我更改了数据集,因为我需要数据中的一个因素来向您展示它是如何工作的。