Geom_points 未绘制在 ggplot 地图上
Geom_points not being drawn on ggplot map
我正在尝试在我从 shapefile(在此 link 下载)创建的地图上叠加几个点。我正在使用 sf 包绘制我的地图,并且能够获得以下地图。
first.map<-ggplot()+
geom_sf(data = shp)+
ggtitle("First Map")
如您所见,这工作正常,但当我尝试叠加我的点时,我得到以下结果。
second.map<-ggplot()+
geom_sf(data = shp)+
geom_point(data=locations, aes(long,lat),inherit.aes = F)+
ggtitle("Second Map")
我认为这与 sf 如何解释我的点坐标有关,但我无法弄清楚如何将我的点坐标转换为 R 想要的坐标。以下是我要覆盖的坐标。我对处理此类数据不是很有经验,因此我们将不胜感激。
locations<-data.frame(id=c(1,2,3,4,5),
long=c(96.73872,96.69264,96.69264,96.69250,96.68029),
lat=c(43.52769,43.53598,43.53598,43.54669,43.53585))
这不是我的强项,所以也很想玩。
我让它像这样工作,
- 将位置转换为 sf 对象
- 将形状转换为具有相同的 crs
- 通过在输入数据中添加
*-1
来编辑位置经度以从西向东交换
很想听听其他人的更好做法,但这应该会让你继续前进。
shp <- st_read("Subdivisions/Subdivisions.shp")
locations<-data.frame(id=c(1,2,3,4,5),
long=c(96.73872,96.69264,96.69264,96.69250,96.68029)*-1,
lat=c(43.52769,43.53598,43.53598,43.54669,43.53585))
locations_g <- st_as_sf(locations, coords = c("long", "lat"), crs = 4326)
shp2 <- st_transform(shp, 4326)
ggplot()+
geom_sf(data = shp2)+
geom_sf(data=locations_g)+
ggtitle("Second Map")
我正在尝试在我从 shapefile(在此 link 下载)创建的地图上叠加几个点。我正在使用 sf 包绘制我的地图,并且能够获得以下地图。
first.map<-ggplot()+
geom_sf(data = shp)+
ggtitle("First Map")
如您所见,这工作正常,但当我尝试叠加我的点时,我得到以下结果。
second.map<-ggplot()+
geom_sf(data = shp)+
geom_point(data=locations, aes(long,lat),inherit.aes = F)+
ggtitle("Second Map")
我认为这与 sf 如何解释我的点坐标有关,但我无法弄清楚如何将我的点坐标转换为 R 想要的坐标。以下是我要覆盖的坐标。我对处理此类数据不是很有经验,因此我们将不胜感激。
locations<-data.frame(id=c(1,2,3,4,5),
long=c(96.73872,96.69264,96.69264,96.69250,96.68029),
lat=c(43.52769,43.53598,43.53598,43.54669,43.53585))
这不是我的强项,所以也很想玩。
我让它像这样工作,
- 将位置转换为 sf 对象
- 将形状转换为具有相同的 crs
- 通过在输入数据中添加
*-1
来编辑位置经度以从西向东交换
很想听听其他人的更好做法,但这应该会让你继续前进。
shp <- st_read("Subdivisions/Subdivisions.shp")
locations<-data.frame(id=c(1,2,3,4,5),
long=c(96.73872,96.69264,96.69264,96.69250,96.68029)*-1,
lat=c(43.52769,43.53598,43.53598,43.54669,43.53585))
locations_g <- st_as_sf(locations, coords = c("long", "lat"), crs = 4326)
shp2 <- st_transform(shp, 4326)
ggplot()+
geom_sf(data = shp2)+
geom_sf(data=locations_g)+
ggtitle("Second Map")