library(sp)
library(spdep)
library(ggplot2)
library(ggmap)
library(rgdal)
Nhận và fiddle với dữ liệu:ggmap với geom_map chồng
nc.sids <- readShapePoly(system.file("etc/shapes/sids.shp", package="spdep")[1],ID="FIPSNO", proj4string=CRS("+proj=longlat +ellps=clrk66"))
nc.sids=spTransform(nc.sids,CRS("+init=epsg:4326"))
Nhận bản đồ nền từ stamen.com, cốt truyện, có vẻ tốt đẹp:
ncmap = get_map(location=as.vector(bbox(nc.sids)),source="stamen",maptype="toner",zoom=7)
ggmap(ncmap)
Tạo một khung dữ liệu với dài, lat, Z và lô trên bản đồ và ô trống:
ncP = data.frame(coordinates(nc.sids),runif(nrow(nc.sids)))
colnames(ncP)=c("long","lat","Z")
ggmap(ncmap)+geom_point(aes(x=long,y=lat,col=Z),data=ncP)
ggplot()+geom_point(aes(x=long,y=lat,col=Z),data=ncP)
cung cấp cho nó một số id duy nhất gọi là 'id' và củng cố (với vitamin và sắt?)
[email protected][,1]=1:nrow(nc.sids)
names(nc.sids)[1]="id"
ncFort = fortify(nc.sids)
Bây giờ, bản đồ của tôi và giới hạn của tôi, tôi muốn âm mưu tỷ lệ 74 sinh:
myMap = geom_map(aes(fill=BIR74,map_id=id),map=ncFort,[email protected])
Limits = expand_limits(x=ncFort$long,y=ncFort$lat)
và trên một âm mưu trống tôi có thể:
ggplot() + myMap + Limits
nhưng trên ggmap tôi không thể:
ggmap(ncmap) + myMap + Limits
# Error in eval(expr, envir, enclos) : object 'lon' not found
.210
Một số phiên bản:
> packageDescription("ggplot2")$Version
[1] "0.9.0"
> packageDescription("ggmap")$Version
[1] "2.0"
tôi có thể thêm geom_polygon để ggplot hoặc ggmap và nó hoạt động như mong đợi. Vì vậy, có điều gì đó đang xảy ra với geom_map ....
tôi nhận được "Lỗi trong validDetails.polygon (x): ' x 'và' y 'và' id 'phải có cùng độ dài "nếu tôi thêm inherit.aes = FALSE vào myMap trong ví dụ trên. – Spacedman
@Spacedman Tôi đã chỉnh sửa câu trả lời của mình để bao gồm mã và kết quả. Mã này gần như chính xác với mã của bạn ngoại trừ phần bổ sung 'inherit.aes = FALSE' trong lệnh gọi' geom_map'. –
Tôi đã cập nhật ggplot2 và ggmap cho các phiên bản đó và bây giờ ggplot2 hoàn toàn bị hỏng. Ví dụ đầu tiên trong geom_point tạo ra một cốt truyện không có điểm, chỉ cần đặt các trục, màu xám b/g và không có gì. Từ một R --vanilla không có gói nào khác được tải. Có thể là một phiên bản R (2.14.2 ...). Grr. – Spacedman