我使用熟悉R和ArcGIS pro。我想使用 ggplot 在 R 中使用 WGS84 绘制地图。
当缩放到德国时,我在 ArcGIS Pro 中获得了相同的经纬度网格。但我无法使用 ggplot2 使用 WGS84 在 R 中获得相等的网格。
以下是我正在尝试的:
library("ggplot2")
library("rnaturalearth")
library("rnaturalearthdata")
library("terra")
library("sf")
world <- ne_countries(scale = "medium", returnclass = "sf")
world_projected <- st_transform(world, crs("epsg:4326"))
ggplot(data = world_projected) +
geom_sf(fill = "transparent") +
theme(
panel.grid.major = element_line(colour = alpha("black", 0.1), linewidth=1, linetype = 1)
) +
coord_sf(xlim = c(5, 16), ylim = c(46, 56), default_crs = crs("epsg:4326"))
我在 ArcGIS Pro 中获得的内容
我在 R 中得到什么
提前致谢。
帕拉夫
看起来您想绘制一个等距圆柱投影。这很简单,但您也需要将 x 和 y 范围转换为正确的投影:
library(ggplot2)
library(rnaturalearth)
library(sf)
world <- ne_countries(scale = "medium", returnclass = "sf")
coords <- st_sf(a = 1:2, geom = st_sfc(st_point(c(5, 46)), st_point(c(16, 56))),
crs = 4326) |>
st_transform(crs = 4087) |>
st_coordinates()
ggplot(data = st_transform(world, crs = 4087)) +
geom_sf(fill = "transparent") +
coord_sf(xlim = coords[,1], ylim = coords[,2]) +
theme(panel.grid.major = element_line(colour = alpha("black", 0.1),
linewidth = 1)
)