我下载了芝加哥三个不同的shapefile。现在,我想将它们组合在一起并绘制在一起。只有病房不作图。 '''错误:data
必须是数据框,或可由fortify()
强制执行的其他对象,而不是带有SpatialPointsDataFrame类的S4对象'“
[前两个是多边形,第三个是面向点...
这是我的代码:
#setting directiories
chicagodir = 'Community Areas/'
chicagoshp = paste(chicagodir, "geo_export_b982773b-13a7-4b96-827d-d969f0695777.shp", sep = "")
chicagoread =readOGR(chicagoshp)
plot(chicagoread)
#Wardprecints facilities
wardprecinctsdir = 'WardPrecincts/'
wardprecinctsshp = paste(wardprecinctsdir, "WardPrecincts.shp", sep = "")
wardprecinctsshpread =readOGR(wardprecinctsshp)
plot(wardprecinctsshpread)
#Ward Offices - Map - Exportable
wardofficesdir = 'Ward Offices - Map - Exportable/'
wardofficesshp = paste(wardofficesdir, "geo_export_b47221aa-0cc1-45db-8a3c-3e6ba72dccf1.shp", sep = "")
wardofficesshpread = readOGR(wardofficesshp)
plot(wardofficesshpread)
chicago_transform <- spTransform(chicagoread, CRS("+proj=longlat +init=epsg:4326"))
wardpre_transform <-spTransform(wardprecinctsshpread, CRS("+proj=longlat +init=epsg:4326"))
wardoff_transform <-spTransform(wardofficesshpread, CRS("+proj=longlat +init=epsg:4326"))
combinedplot = ggplot() +
geom_path(data = chicago_transform, aes(x = long, y = lat, group = group)) +
coord_fixed() +
labs(title = "Plot of Chicago",
x = "long", y = "lat") +# Because we don't need x and y labels do we?
#add specific wardprecinctsshpread and wardoffices
geom_polygon(data=wardpre_transform, aes(x = long, y = lat, group = group, color="red")) +
geom_polygon(data=wardoff_transform, aes(x = long, y = lat, group = group, color="blue"))
combinedplot
'''
如何解决这个问题,将点绘制到2个多边形上?提前谢谢
确实,区役所数据不同。您可以只在as.data.frame
上使用SpatialPointsDataFrame
。请注意,您需要lat
和long
来代替latitude
和longitude
。否则,请告诉我您是否打算这样做。
library(rgdal)
library(ggplot2)
chicagoread =readOGR("geo_export_210c4709-68df-496d-8b9c-8f7484608bc9.shp")
plot(chicagoread)
wardprecinctsshpread =readOGR("WardPrecincts.shp")
plot(wardprecinctsshpread)
wardofficesshpread = readOGR("geo_export_10f18171-8b13-4022-8d57-08d3b9bb0027.shp")
plot(wardofficesshpread)
chicago_transform <- spTransform(chicagoread, CRS("+proj=longlat +init=epsg:4326"))
wardpre_transform <- spTransform(wardprecinctsshpread, CRS("+proj=longlat +init=epsg:4326"))
wardoff_transform <- spTransform(wardofficesshpread, CRS("+proj=longlat +init=epsg:4326"))
combinedplot = ggplot() +
geom_path(data = chicago_transform, aes(x = long, y = lat, group = group)) +
coord_fixed() +
labs(title = "Plot of Chicago", x = "long", y = "lat") +
geom_polygon(data=wardpre_transform, aes(x = long, y = lat, group = group), color="red") +
geom_point(data=as.data.frame(wardoff_transform), aes(x = longitude, y = latitude), color="blue") +
theme_bw()
combinedplot