我正在用
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"))
这不是最佳选择,因为我希望始终看到经线和平行线,即使与国家/地区的几何图形重叠。
有没有办法让
ggplot2
中的网格处于前景,而绘制的曲面处于背景?
您可以使用
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)