【发布时间】:2020-07-28 18:36:17
【问题描述】:
我制作了一个 ggplot 图,其中的图例是由来自 2 个不同几何图形的映射制成的,如下所示:
# Create data.frame with shading info
shading <- data.frame(min = seq(from = 0.5, to = max(as.numeric(as.factor(mtcars$carb))), by = 1),
max = seq(from = 1.5, to = max(as.numeric(as.factor(mtcars$carb))) + 0.5, by = 1),
col = c(0,1))
# Plot
ggplot() +
geom_col(data = mtcars, mapping = aes(x = factor(carb), y = mpg, fill = factor(cyl))) +
geom_rect(data = shading,
aes(xmin = min, xmax = max, ymin = -Inf, ymax = Inf,
fill = factor(col)), alpha = 0.3) +
scale_fill_manual(values = c("black", "white", "green", "blue", "red")) +
geom_col(data = mtcars, mapping = aes(x = factor(carb), y = mpg, fill = factor(cyl)))
如何从图例中删除前 2 个图例项(黑色 0 和白色 1)但将其保留在图表上?
谢谢
【问题讨论】: