允许 panel.grid 在 ggplot2 中处于前台或后台

问题描述 投票:0回答:1

我正在用

ggplot2
绘制欧洲地图,我想显示经络和平行线。我可以使用
panel.grid.major
panel.grid.minor
来完成此操作。

但是,使用我当前的代码,与绘制的表面(国家/地区)相比,使用 ggplot 创建的网格位于背景中,因此当两者重叠时,看不到网格:

library(rnaturalearth)
library(ggplot2)
library(sf)


ggplot(ne_countries(scale = "medium", continent = NULL, returnclass = "sf")) +
  geom_sf() +
  coord_sf(xlim=c(2600000, 7300000), ylim=c(5450000, 1000000), 
           crs = st_crs(3035)) +
  theme(panel.background = element_rect(fill = "white"),
        panel.grid.major = element_line(colour = "red"),
        panel.grid.minor = element_line(colour = "red"))

enter image description here

这不是最佳选择,因为我希望始终看到经线和平行线,即使与国家/地区的几何图形重叠。

有没有办法让

ggplot2
中的网格处于前景,而绘制的曲面处于背景?

r ggplot2
1个回答
0
投票

您可以使用

theme(panel.ontop = TRUE)
,但您需要使面板背景透明才能正常工作。如果您的面板背景与绘图背景颜色相同,这不是问题,就像这里的情况一样。

ggplot(ne_countries(scale = "medium", continent = NULL, returnclass = "sf")) +
  geom_sf() +
  coord_sf(xlim=c(2600000, 7300000), ylim=c(5450000, 1000000), 
           crs = st_crs(3035)) +
  theme(panel.background = element_blank(),
        panel.grid.major = element_line(colour = "red"),
        panel.grid.minor = element_line(colour = "red"),
        panel.ontop = TRUE)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.