如果您要编辑一堆图,您可能需要考虑使用ggplot2 作为您的图形库而不是基础。有很多很多在线资源可以帮助您从那里开始。这里只是一个简单的例子:
library(ggplot2)
img <- ggplot(mtcars) +
geom_point(aes(x = hp, y = mpg))
img
现在假设您想为一些点着色。这个向量会将所有点都设为lightblue,然后将前5个点设置回black。
point_colors <- rep("lightblue", nrow(mtcars))
point_colors[1:5] <- "black"
我们可以将它直接叠加到图的顶部:
img <- img +
geom_point(aes(x = hp, y = mpg), color = point_colors)
img
使用ggplot2,我们可以通过运行img$layers 来查看绘图是如何分层的:
> img$layers
[[1]]
mapping: x = ~hp, y = ~mpg
geom_point: na.rm = FALSE
stat_identity: na.rm = FALSE
position_identity
[[2]]
mapping: x = ~hp, y = ~mpg
geom_point: na.rm = FALSE
stat_identity: na.rm = FALSE
position_identity
我们可以通过将图层设置为 null 来移除它:
img$layers[[1]] <- NULL
> img$layers
[[1]]
mapping: x = ~hp, y = ~mpg
geom_point: na.rm = FALSE
stat_identity: na.rm = FALSE
position_identity
所以现在我们删除了原来的图层,只剩下颜色改变了的那个。使用 ggplot2,以后可以很容易地进行更改(尤其是干净的添加)。
img +
ggtitle("only one layer!") +
theme_light()