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")
)
Run Code Online (Sandbox Code Playgroud)
用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")
Run Code Online (Sandbox Code Playgroud)
小智 5
正如评论 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)
)
Run Code Online (Sandbox Code Playgroud)