如何在 R 中的 ggplot2 中使用凸包突出显示组?
在本文中,我们将了解如何使用 R 编程语言在 ggplot2 中使用凸包突出显示组。
凸包多边形是指在每组中的最外层点周围绘制一个线边界框。
为演示创建散点图
在这里,我们将使用 iris 数据集绘制散点图以及两个不同的组(Sepal.Length 和 Sepal.Width)。为了绘制我们将使用的散点图,我们将使用 geom_point()函数。以下是有关 ggplot函数geom_point() 的简要信息。
Syntax : geom_point(size, color, fill, shape, stroke)
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() 方法。
Syntax: geom_polygon( data, alpha, aes())
Parameters:
- data: Datasets
- alpha: Opacity of Points/Border
- aes: Color Highlight of data points.
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))
输出: