library(sp)
library(spdep)
library(ggplot2)
library(ggmap)
library(rgdal)
प्राप्त करें और डेटा के साथ बेला:ggmap आरोपित
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"))
stamen.com से पृष्ठभूमि नक्शा प्राप्त करें, साजिश, अच्छा लग रहा है:
ncmap = get_map(location=as.vector(bbox(nc.sids)),source="stamen",maptype="toner",zoom=7)
ggmap(ncmap)
लंबे साथ एक डेटा फ्रेम बनाएँ, मानचित्र पर लेट, जेड, और साजिश और एक खाली साजिश:
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)
यह कुछ अद्वितीय आईडी 'id' कहलाती देने के लिए और मज़बूत (विटामिन और लोहे के साथ?)
[email protected][,1]=1:nrow(nc.sids)
names(nc.sids)[1]="id"
ncFort = fortify(nc.sids)
अब, मेरे मानचित्र और मेरी सीमा है, मैं 74 जन्म दर साजिश करना चाहते हैं:
myMap = geom_map(aes(fill=BIR74,map_id=id),map=ncFort,[email protected])
Limits = expand_limits(x=ncFort$long,y=ncFort$lat)
और एक खाली भूखंड मैं कर सकते हैं पर:
ggplot() + myMap + Limits
लेकिन एक ggmap पर मैं नहीं कर सकता:
ggmap(ncmap) + myMap + Limits
# Error in eval(expr, envir, enclos) : object 'lon' not found
,210
कुछ संस्करणों:
> packageDescription("ggplot2")$Version
[1] "0.9.0"
> packageDescription("ggmap")$Version
[1] "2.0"
मैं ggplot या ggmap को geom_polygon जोड़ सकते हैं और यह उम्मीद के रूप में काम करता है। तो geom_map के साथ कुछ है ....
मैं validDetails.polygon में मिलता है "त्रुटि (एक्स): ' एक्स 'और' वाई 'और' आईडी 'सभी एक ही लम्बाई होनी चाहिए "अगर मैं ऊपर दिए गए उदाहरण में myMap.aes = myMap में FALSE जोड़ता हूं। – Spacedman
@ स्पेसमैन मैंने कोड और नतीजे को शामिल करने के लिए अपना जवाब संपादित कर लिया है। कोड 'geom_map' कॉल में' legisl.aes = FALSE' को जोड़ने के अलावा कोड लगभग बिल्कुल सही है। –
मैंने उन संस्करणों में ggplot2 और ggmap को अद्यतन किया और अब ggplot2 पूरी तरह से तोड़ दिया गया है। Geom_point में पहला उदाहरण कोई प्वाइंट नहीं देता है जिसमें कोई अंक नहीं है, बस अक्ष, ग्रे बी/जी, और कुछ भी सेट नहीं करता है। एक आर --vanilla से कोई अन्य पैकेज लोड के साथ। शायद एक आर संस्करण चीज (2.14.2 ...)। Grr। – Spacedman