📜  如何在 R 中的 ggplot2 中使用凸包突出显示组?

📅  最后修改于: 2022-05-13 01:54:46.615000             🧑  作者: Mango

如何在 R 中的 ggplot2 中使用凸包突出显示组?

在本文中,我们将了解如何使用 R 编程语言在 ggplot2 中使用凸包突出显示组。

凸包多边形是指在每组中的最外层点周围绘制一个线边界框。

为演示创建散点图

在这里,我们将使用 iris 数据集绘制散点图以及两个不同的组(Sepal.Length 和 Sepal.Width)。为了绘制我们将使用的散点图,我们将使用 geom_point()函数。以下是有关 ggplot函数geom_point() 的简要信息。

R
library(tidyverse)
 
# Define the scatterplot
plot <- ggplot(iris, aes(Sepal.Length,
                      Sepal.Width,
                      color = Species))+
geom_point(shape = 21)
 
# display plot
plot


R
# Find the convex hull of the points being plotted
hull <- iris %>% group_by(Species) %>%
slice(chull(Sepal.Length, Sepal.Width))
 
plot + geom_polygon(data = hull, alpha = 0.2,
                 aes(fill = Species,colour = Species))



输出:

在ggplot2中突出显示具有凸包的组

为了围绕每个组的最外点绘制线边界框,我们将使用chull() 方法和分组数据点,该方法计算位于指定点集的凸包上的点的子集。

为了突出凸包,我们可以对凸包数据集使用 geom_polygon() 方法。

R

# Find the convex hull of the points being plotted
hull <- iris %>% group_by(Species) %>%
slice(chull(Sepal.Length, Sepal.Width))
 
plot + geom_polygon(data = hull, alpha = 0.2,
                 aes(fill = Species,colour = Species))


输出: