Если вы собираетесь редактировать несколько графиков, вы можете рассмотреть возможность использования 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()