📜  如何在 R 中的特定数据点周围添加圆圈(1)

📅  最后修改于: 2023-12-03 15:24:21.292000             🧑  作者: Mango

如何在 R 中的特定数据点周围添加圆圈

在 R 绘制数据图时,有时需要在特定的数据点周围添加圆圈以凸显其重要性或区分其它数据点。本文将介绍如何在 R 中实现对特定数据点周围添加圆圈的效果。

准备数据

我们使用 R 内置的 iris 数据集作为例子。首先加载数据:

data(iris)

然后选择某个 Species(品种)的数据作为绘图数据:

iris_setosa <- subset(iris, Species == "setosa")
绘图基础

我们使用 ggplot2 包来绘制数据图。首先加载包:

library(ggplot2)

然后使用 ggplot 函数新建一个绘图对象:

p <- ggplot(iris_setosa, aes(x = Sepal.Length, y = Sepal.Width))
p

可以看到一个空的坐标系,我们需要在其基础上添加数据点。

添加数据点

我们使用 geom_point 函数来添加数据点。在该函数中,我们指定点的大小、颜色、形状等属性。为使后续处理较轻松,我们将这些属性定义为变量。

point_size <- 2.5   # 点的大小
point_color <- "#FF0000"   # 点的颜色
point_shape <- 21   # 用空心圆点表示数据点
p <- p + geom_point(size = point_size, color = point_color, shape = point_shape)
p
添加圆圈

我们使用 annotate 函数来添加圆圈。在该函数中,我们指定圆圈的大小、颜色、填充色等属性。为使后续处理较轻松,我们同样将这些属性定义为变量。

circle_radius <- 0.4   # 圆圈半径
circle_color <- "#FF0000"   # 圆圈边框颜色
circle_fill <- NA   # 圆圈无填充
p <- p + annotate("circle", x = 5.1, y = 3.8, size = circle_radius,
                  color = circle_color, fill = circle_fill)
p

其中,xy 分别为圆圈的中心点横坐标和纵坐标,即需要被加圆圈的数据点的坐标。

效果展示

下是完整代码和效果展示:

data(iris)
iris_setosa <- subset(iris, Species == "setosa")

library(ggplot2)
point_size <- 2.5
point_color <- "#FF0000"
point_shape <- 21
p <- ggplot(iris_setosa, aes(x = Sepal.Length, y = Sepal.Width))
p <- p + geom_point(size = point_size, color = point_color, shape = point_shape)

circle_radius <- 0.4
circle_color <- "#FF0000"
circle_fill <- NA
p <- p + annotate("circle", x = 5.1, y = 3.8, size = circle_radius,
                  color = circle_color, fill = circle_fill)

p

我们可以看到,在坐标系中间的红色点周围有一个红色圆圈。