我有俄克拉荷马城不同部分的平均收入数据,我正在尝试创建该城市的等值线。这是数据。
library(acs)
library(ggplot2)
library(ggmap)
library(UScensus2010)
library(spdep)
library(RColorBrewer)
# Use your census API key (You'll need to get your own API key)
#http://api.census.gov/data/key_signup.html
api.key.install(key="c369cd6ed053a84332caa62301eb8afe98bed825")
# Load in Shape File (You'll need to download this file from the census)
#ftp://ftp2.census.gov/geo/tiger/TIGER2013/TRACT/tl_2013_40_tract.zip
geodat<-readShapePoly((""), proj4string=CRS('+proj=longlat +datum=NAD83'))
geodat<-geodat[geodat$COUNTYFP==109,]
# Tract Level Data
mdat<-geodat@data
# American Community Survey Data: Median HH Income for OK Census Tracts
ok.counties=geo.make(state="OK", county="Oklahoma", tract="*")
ok.income<-acs.fetch(geography=ok.counties, table.number="B19013", endyear=2013)
# Merge Data Sets
geo_dat<-geography(ok.income)
var_dat<-as.data.frame(estimate(ok.income))
acs_data<-cbind(geo_dat,var_dat)
mdat2<-merge(mdat,acs_data,by.x="TRACTCE", by.y= "tract")
#cut data
mdat2$cut <- cut(mdat2$B19013_001, breaks = c(5000, 200000, by = 10000))
map <- mdat2[, 11:12]
#create map
okc <- ggplot(mdat2, aes(x = INTPTLON, y = INTPTLAT, fill = B19013_001)) +
geom_map(aes(fill=cut), map=map)
我是 ggplot2 的新手,似乎无法让它正常工作。我可以使用 spplot 创建一个等值线,但我想用 ggplot 制作一个,这样我就可以将它与其他地图分层。
编辑:忘了包括我正在尝试创建一个以中等收入作为填充的等值线。mdat2 数据框中的收入中位数为 B19013_001。INTPTLON 向量是城市不同区域的经度坐标,INTPTLAT 是纬度坐标。 这 是我在 spolot 中创建的绘图示例。我正在尝试在 ggplot 中做类似的事情
以下是 mdat2 的前 10 个观察结果:
TRACTCE STATEFP COUNTYFP GEOID NAME.x NAMELSAD MTFCC FUNCSTAT ALAND AWATER INTPTLAT
1 100100 40 109 40109100100 1001 Census Tract 1001 G5020 S 2141969 0 +35.5207581
2 100200 40 109 40109100200 1002 Census Tract 1002 G5020 S 3349288 0 +35.5039838
3 100300 40 109 40109100300 1003 Census Tract 1003 G5020 S 2098254 0 +35.5123370
4 100400 40 109 40109100400 1004 Census Tract 1004 G5020 S 2593440 0 +35.5004315
5 100500 40 109 40109100500 1005 Census Tract 1005 G5020 S 2734867 0 +35.5006179
6 100600 40 109 40109100600 1006 Census Tract 1006 G5020 S 551754 0 +35.5040878
INTPTLON NAME.y state county B19013_001
1 -097.5315537 Census Tract 1001, Oklahoma County, Oklahoma 40 109 33440
2 -097.5546474 Census Tract 1002, Oklahoma County, Oklahoma 40 109 29338
3 -097.5259348 Census Tract 1003, Oklahoma County, Oklahoma 40 109 85592
4 -097.4855750 Census Tract 1004, Oklahoma County, Oklahoma 40 109 21084
5 -097.5037840 Census Tract 1005, Oklahoma County, Oklahoma 40 109 23411
6 -097.5172200 Census Tract 1006, Oklahoma County, Oklahoma 40 109 62857