Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 绘制投影sf点时出现问题:ggplot';s坐标类型和网格线意外_R_Ggplot2_Geospatial_Sf - Fatal编程技术网

R 绘制投影sf点时出现问题:ggplot';s坐标类型和网格线意外

R 绘制投影sf点时出现问题:ggplot';s坐标类型和网格线意外,r,ggplot2,geospatial,sf,R,Ggplot2,Geospatial,Sf,我正在尝试绘制一个重新投影的数据集,尽管坐标已经重新投影,但ggplot仍然坚持使用DEGRES lon lat坐标系 下面是一个可复制的示例: library(sf) library(dplyr) library(ggplot2) set.seed(42) df <- tibble(lon = runif(20, min = -73, max = -68), lat = runif(20, min = 41, max = 46)) sf <- st_as

我正在尝试绘制一个重新投影的数据集,尽管坐标已经重新投影,但ggplot仍然坚持使用DEGRES lon lat坐标系

下面是一个可复制的示例:

library(sf)
library(dplyr)
library(ggplot2)

set.seed(42)
df <- tibble(lon = runif(20, min = -73, max = -68),
             lat = runif(20, min = 41, max = 46))
sf <- st_as_sf(df, coords = c("lon", "lat"), crs = 4326, agr = "constant")

# This plot has the expected lon-lat degree coords
ggplot(sf) + geom_sf()

使用
coord_sf()
并将
基准设置为对象的基准:

库(sf)
#>链接到GEOS 3.7.1、GDAL 2.4.2、项目5.2.0
图书馆(dplyr)
图书馆(GG2)
种子(42)

df它在投影中绘制,但它用longlat标记轴-一种方法是删除CRS(糟糕,我知道),不确定是否有更好的方法ggplot(st_set_CRS(sf,NA))+geom_sf(),这比删除CRS的建议要糟糕得多。我认为这让我们能够控制轴和网格线是反映地理坐标还是投影坐标是件好事。
# Same as above, but I wouldn't expect it to be different
# because ggplot takes the crs from the initial data argument.
ggplot(sf) +
  geom_sf() +
  coord_sf(crs = laea_proj4)