ggplot2绘图的面板网格被创建为位于绘图的背景上。我的问题是:是否可以修改以覆盖情节?
我可以部分看到用geom_hline()
或geom_vline()
层代替网格的解决方案。但是,对于更复杂的图或在绘制地图时,这可能会很棘手,因此,我的问题仅涉及修改theme()
的元素。
library(tidyverse)
df <- data.frame(x = c(1,2),
y = c(1,2))
df %>% ggplot(aes(x, y)) +
geom_area() + theme(
panel.grid = element_line(color = "red")
)
用geom_hline()
或geom_vline()
替换网格的秘籍解决方案
grd_x <- seq(1, 2, length.out = 9)
grd_y <- seq(0, 2, length.out = 9)
df %>% ggplot(aes(x, y)) +
geom_area() +
geom_hline(yintercept = grd_y, col = "red") +
geom_vline(xintercept = grd_x, col = "red")
答案 0 :(得分:2)
如注释1所述,您可以使用theme(panel.ontop = TRUE)
。但是,尝试此操作时,我再也看不到该图。因此,在将panel.ontop
更改为TRUE
时,需要确保面板的背景图像为空白:
library(tidyverse)
df <- data.frame(x = c(1,2),
y = c(1,2))
df %>% ggplot(aes(x, y)) +
geom_area() +
theme(panel.grid = element_line(color = "red"),
panel.ontop = TRUE, panel.background = element_rect(color = NA, fill = NA)
)