First, you have to acquire some related packages and the interested shape file. Here, the US shape file which is avaliable for fee in many different websites is taken for example.
library(maptools)
## Warning: package 'maptools' was built under R version 3.0.3
## Loading required package: sp
## Warning: package 'sp' was built under R version 3.0.3
## Checking rgeos availability: TRUE
library(spdep)
## Warning: package 'spdep' was built under R version 3.0.3
## Loading required package: Matrix
## Warning: package 'Matrix' was built under R version 3.0.3
##
## Attaching package: 'Matrix'
##
## The following objects are masked from 'package:base':
##
## crossprod, tcrossprod
library(RColorBrewer) # creates nice color schemes
## Warning: package 'RColorBrewer' was built under R version 3.0.3
library(classInt)
## Warning: package 'classInt' was built under R version 3.0.3
library(rgeos)
## Warning: package 'rgeos' was built under R version 3.0.3
## rgeos version: 0.3-8, (SVN revision 460)
## GEOS runtime version: 3.4.2-CAPI-1.8.2 r3921
## Polygon checking: TRUE
USAshp=readShapeSpatial("C:/Users/taich_000/Documents/states.shp")
To have an easier visualization, we only Consider the local states.
localUS=USAshp[-c(1,51),] #only 49 local states
head(localUS@data)
## STATE_NAME DRAWSEQ STATE_FIPS SUB_REGION STATE_ABBR
## 1 Washington 2 53 Pacific WA
## 2 Montana 3 30 Mountain MT
## 3 Maine 4 23 New England ME
## 4 North Dakota 5 38 West North Central ND
## 5 South Dakota 6 46 West North Central SD
## 6 Wyoming 7 56 Mountain WY
Download US poverty data from http://www.census.gov/hhes/www/poverty/data/.
povertydata=read.csv("C:/Users/taich_000/Documents/USpoverty.csv",skip=3,header=FALSE)[,2:22]
colnames(povertydata)=c("FIPS","STATE_NAME","Total",paste("Rate",seq(1960,2010,by=10),sep=""),
paste("Pop",seq(1960,2010,by=10),sep=""),paste("Person",seq(1960,2010,by=10),sep=""))
povertystate=povertydata[which(povertydata$Total=="State Total"|povertydata$Total=="Total"),]
povertystate=povertystate[-c(2,12),] #minus Alaska and Hawaii
Merge poverty data with US shape data
mlocalUS=merge(localUS,povertystate)
plotvar <- mlocalUS@data[,8]
nclr <- 9
plotclr <- brewer.pal(nclr,"OrRd") #close to heat colors
class <- classIntervals(plotvar, nclr, style="equal") # find correspondent colors for a ginven variable
class$brks[10]=class$brks[10]+0.1
colcode <- findColours(class, plotclr)
Take year 1960 for example.
i=8
plotvar <- mlocalUS@data[,i]
nclr <- 9
plotclr <- brewer.pal(nclr,"OrRd")
class <- classIntervals(plotvar, nclr, style="equal")
class$brks[10]=class$brks[10]+0.1
colcode <- findColours(class, plotclr)
spplot(mlocalUS, names(mlocalUS)[i],
col.regions=plotclr, at=round(class$brks, digits=1),
main=paste("US Poverty Rate ",substr(names(mlocalUS@data)[i],5,8),sep=""))
neiusa <- poly2nb(mlocalUS) #make polygon to neighbor data format
usaNeilist=neiusa
USAshp.nhbrW <- nb2listw(neiusa, style = "B", zero.policy = TRUE) #make nb data to weighted list
USA.nhbrWM = listw2mat(USAshp.nhbrW) #make neighborhood list to matrix
Determine the polygon centres and the distances between each pair of centres.
c1 = gCentroid(mlocalUS,byid=TRUE)
DM=as.matrix(dist(c1@coords,diag=TRUE,upper=TRUE))
colnames(DM)=NULL
#compute the members of each scanning window
WIN=NULL
for(k in 1:10)
{
disk=apply(DM,1,function(x)which(x<=k))
WIN=c(WIN,list(disk))
}
library(animation)
ani.options(convert = 'C:/Program Files/ImageMagick-6.8.9-Q16/convert.exe',interval=0.2)
saveGIF({
for(center in 1:49)
{
for(D in 1:10)
{
tempcol=rep("white",49)
tempcol[WIN[[D]][[center]]]="red"
plot(mlocalUS, col=tempcol)
}
}
},movie.name = "c:\\rtest\\usstatescan.gif",convert ="convert")
## Executing:
## "C:/Program Files/ImageMagick-6.8.9-Q16/convert.exe" -loop 0
## -delay 20 Rplot1.png Rplot2.png Rplot3.png Rplot4.png
## Rplot5.png Rplot6.png Rplot7.png Rplot8.png Rplot9.png
## Rplot10.png Rplot11.png Rplot12.png Rplot13.png Rplot14.png
## Rplot15.png Rplot16.png Rplot17.png Rplot18.png Rplot19.png
## Rplot20.png Rplot21.png Rplot22.png Rplot23.png Rplot24.png
## Rplot25.png Rplot26.png Rplot27.png Rplot28.png Rplot29.png
## Rplot30.png Rplot31.png Rplot32.png Rplot33.png Rplot34.png
## Rplot35.png Rplot36.png Rplot37.png Rplot38.png Rplot39.png
## Rplot40.png Rplot41.png Rplot42.png Rplot43.png Rplot44.png
## Rplot45.png Rplot46.png Rplot47.png Rplot48.png Rplot49.png
## Rplot50.png Rplot51.png Rplot52.png Rplot53.png Rplot54.png
## Rplot55.png Rplot56.png Rplot57.png Rplot58.png Rplot59.png
## Rplot60.png Rplot61.png Rplot62.png Rplot63.png Rplot64.png
## Rplot65.png Rplot66.png Rplot67.png Rplot68.png Rplot69.png
## Rplot70.png Rplot71.png Rplot72.png Rplot73.png Rplot74.png
## Rplot75.png Rplot76.png Rplot77.png Rplot78.png Rplot79.png
## Rplot80.png Rplot81.png Rplot82.png Rplot83.png Rplot84.png
## Rplot85.png Rplot86.png Rplot87.png Rplot88.png Rplot89.png
## Rplot90.png Rplot91.png Rplot92.png Rplot93.png Rplot94.png
## Rplot95.png Rplot96.png Rplot97.png Rplot98.png Rplot99.png
## Rplot100.png Rplot101.png Rplot102.png Rplot103.png
## Rplot104.png Rplot105.png Rplot106.png Rplot107.png
## Rplot108.png Rplot109.png Rplot110.png Rplot111.png
## Rplot112.png Rplot113.png Rplot114.png Rplot115.png
## Rplot116.png Rplot117.png Rplot118.png Rplot119.png
## Rplot120.png Rplot121.png Rplot122.png Rplot123.png
## Rplot124.png Rplot125.png Rplot126.png Rplot127.png
## Rplot128.png Rplot129.png Rplot130.png Rplot131.png
## Rplot132.png Rplot133.png Rplot134.png Rplot135.png
## Rplot136.png Rplot137.png Rplot138.png Rplot139.png
## Rplot140.png Rplot141.png Rplot142.png Rplot143.png
## Rplot144.png Rplot145.png Rplot146.png Rplot147.png
## Rplot148.png Rplot149.png Rplot150.png Rplot151.png
## Rplot152.png Rplot153.png Rplot154.png Rplot155.png
## Rplot156.png Rplot157.png Rplot158.png Rplot159.png
## Rplot160.png Rplot161.png Rplot162.png Rplot163.png
## Rplot164.png Rplot165.png Rplot166.png Rplot167.png
## Rplot168.png Rplot169.png Rplot170.png Rplot171.png
## Rplot172.png Rplot173.png Rplot174.png Rplot175.png
## Rplot176.png Rplot177.png Rplot178.png Rplot179.png
## Rplot180.png Rplot181.png Rplot182.png Rplot183.png
## Rplot184.png Rplot185.png Rplot186.png Rplot187.png
## Rplot188.png Rplot189.png Rplot190.png Rplot191.png
## Rplot192.png Rplot193.png Rplot194.png Rplot195.png
## Rplot196.png Rplot197.png Rplot198.png Rplot199.png
## Rplot200.png Rplot201.png Rplot202.png Rplot203.png
## Rplot204.png Rplot205.png Rplot206.png Rplot207.png
## Rplot208.png Rplot209.png Rplot210.png Rplot211.png
## Rplot212.png Rplot213.png Rplot214.png Rplot215.png
## Rplot216.png Rplot217.png Rplot218.png Rplot219.png
## Rplot220.png Rplot221.png Rplot222.png Rplot223.png
## Rplot224.png Rplot225.png Rplot226.png Rplot227.png
## Rplot228.png Rplot229.png Rplot230.png Rplot231.png
## Rplot232.png Rplot233.png Rplot234.png Rplot235.png
## Rplot236.png Rplot237.png Rplot238.png Rplot239.png
## Rplot240.png Rplot241.png Rplot242.png Rplot243.png
## Rplot244.png Rplot245.png Rplot246.png Rplot247.png
## Rplot248.png Rplot249.png Rplot250.png Rplot251.png
## Rplot252.png Rplot253.png Rplot254.png Rplot255.png
## Rplot256.png Rplot257.png Rplot258.png Rplot259.png
## Rplot260.png Rplot261.png Rplot262.png Rplot263.png
## Rplot264.png Rplot265.png Rplot266.png Rplot267.png
## Rplot268.png Rplot269.png Rplot270.png Rplot271.png
## Rplot272.png Rplot273.png Rplot274.png Rplot275.png
## Rplot276.png Rplot277.png Rplot278.png Rplot279.png
## Rplot280.png Rplot281.png Rplot282.png Rplot283.png
## Rplot284.png Rplot285.png Rplot286.png Rplot287.png
## Rplot288.png Rplot289.png Rplot290.png Rplot291.png
## Rplot292.png Rplot293.png Rplot294.png Rplot295.png
## Rplot296.png Rplot297.png Rplot298.png Rplot299.png
## Rplot300.png Rplot301.png Rplot302.png Rplot303.png
## Rplot304.png Rplot305.png Rplot306.png Rplot307.png
## Rplot308.png Rplot309.png Rplot310.png Rplot311.png
## Rplot312.png Rplot313.png Rplot314.png Rplot315.png
## Rplot316.png Rplot317.png Rplot318.png Rplot319.png
## Rplot320.png Rplot321.png Rplot322.png Rplot323.png
## Rplot324.png Rplot325.png Rplot326.png Rplot327.png
## Rplot328.png Rplot329.png Rplot330.png Rplot331.png
## Rplot332.png Rplot333.png Rplot334.png Rplot335.png
## Rplot336.png Rplot337.png Rplot338.png Rplot339.png
## Rplot340.png Rplot341.png Rplot342.png Rplot343.png
## Rplot344.png Rplot345.png Rplot346.png Rplot347.png
## Rplot348.png Rplot349.png Rplot350.png Rplot351.png
## Rplot352.png Rplot353.png Rplot354.png Rplot355.png
## Rplot356.png Rplot357.png Rplot358.png Rplot359.png
## Rplot360.png Rplot361.png Rplot362.png Rplot363.png
## Rplot364.png Rplot365.png Rplot366.png Rplot367.png
## Rplot368.png Rplot369.png Rplot370.png Rplot371.png
## Rplot372.png Rplot373.png Rplot374.png Rplot375.png
## Rplot376.png Rplot377.png Rplot378.png Rplot379.png
## Rplot380.png Rplot381.png Rplot382.png Rplot383.png
## Rplot384.png Rplot385.png Rplot386.png Rplot387.png
## Rplot388.png Rplot389.png Rplot390.png Rplot391.png
## Rplot392.png Rplot393.png Rplot394.png Rplot395.png
## Rplot396.png Rplot397.png Rplot398.png Rplot399.png
## Rplot400.png Rplot401.png Rplot402.png Rplot403.png
## Rplot404.png Rplot405.png Rplot406.png Rplot407.png
## Rplot408.png Rplot409.png Rplot410.png Rplot411.png
## Rplot412.png Rplot413.png Rplot414.png Rplot415.png
## Rplot416.png Rplot417.png Rplot418.png Rplot419.png
## Rplot420.png Rplot421.png Rplot422.png Rplot423.png
## Rplot424.png Rplot425.png Rplot426.png Rplot427.png
## Rplot428.png Rplot429.png Rplot430.png Rplot431.png
## Rplot432.png Rplot433.png Rplot434.png Rplot435.png
## Rplot436.png Rplot437.png Rplot438.png Rplot439.png
## Rplot440.png Rplot441.png Rplot442.png Rplot443.png
## Rplot444.png Rplot445.png Rplot446.png Rplot447.png
## Rplot448.png Rplot449.png Rplot450.png Rplot451.png
## Rplot452.png Rplot453.png Rplot454.png Rplot455.png
## Rplot456.png Rplot457.png Rplot458.png Rplot459.png
## Rplot460.png Rplot461.png Rplot462.png Rplot463.png
## Rplot464.png Rplot465.png Rplot466.png Rplot467.png
## Rplot468.png Rplot469.png Rplot470.png Rplot471.png
## Rplot472.png Rplot473.png Rplot474.png Rplot475.png
## Rplot476.png Rplot477.png Rplot478.png Rplot479.png
## Rplot480.png Rplot481.png Rplot482.png Rplot483.png
## Rplot484.png Rplot485.png Rplot486.png Rplot487.png
## Rplot488.png Rplot489.png Rplot490.png
## "c:\rtest\usstatescan.gif"
## Output at: c:\rtest\usstatescan.gif
## [1] FALSE