使用geom_sf()绘制世界地图时出现坐标轴刻度和标签丢失的问题

4
当绘制基本的世界地图时,我没有在坐标轴上显示纬度和经度。我已经尝试了cran提供的geom_sf()示例,它可以显示纬度和经度。
以下是我的代码。
library("ggplot2")
library("sf")
#> Linking to GEOS 3.7.2, GDAL 2.4.2, PROJ 5.2.0
library("rnaturalearth")
library("rnaturalearthdata")

world <- ne_countries(scale = "medium", returnclass = "sf")
class(world)
#> [1] "sf"         "data.frame"

ggplot(data = world) +
  geom_sf() +
  coord_sf()

这是一个生成经纬度轴的示例代码。
nc <- st_read(system.file("shape/nc.shp", package="sf"))
#> Reading layer `nc' from data source `/Library/Frameworks/R.framework/Versions/3.6/Resources/library/sf/shape/nc.shp' using driver `ESRI Shapefile'
#> Simple feature collection with 100 features and 14 fields
#> geometry type:  MULTIPOLYGON
#> dimension:      XY
#> bbox:           xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> epsg (SRID):    4267
#> proj4string:    +proj=longlat +datum=NAD27 +no_defs

ggplot(nc) + geom_sf()

1个回答

8

coord_sf() 只有在网格线实际到达轴线时才绘制轴标记。在您的世界地图中,绘图面板扩展超出了地球的大小(可以看到网格线在绘图面板边缘之前结束),因此没有绘制轴标记。

解决此问题的一种方法是关闭扩展功能。

library("ggplot2")
library("sf")
#> Linking to GEOS 3.7.2, GDAL 2.4.2, PROJ 5.2.0
library("rnaturalearth")
library("rnaturalearthdata")

world <- ne_countries(scale = "medium", returnclass = "sf")
class(world)
#> [1] "sf"         "data.frame"

ggplot(data = world) +
  geom_sf() +
  coord_sf(expand = FALSE)

该代码片段由reprex软件包 (v0.3.0)于2019-11-02创建。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接