Skip to content

counties in different colours using map()

3 messages · Tord Snall, Earl F. Glynn, Jim Lemon

#
Hi,
I would like to plot a map of US counties using different colors. map() 
seems to be the function to use, e.g.
library(maps); map('usa'); map('county', 'colorado', add=T,fill = T, 
col=c(1:5))
plots Colorado counties using colours 1 to 5.

However, I want each color to represent a certain value - a value to be 
picked from a data frame.
This code should show a correspoding map at the level of states:
state.names <- system('tr "[A-Z]" "[a-z]"', state.name)
map.states <- unix('sed "s/:.*//"', map(names=T,plot=F))
state.to.map <- match(map.states, state.names)
color<- votes.repub[state.to.map, votes.year = 1900] / 100
map('state', fill=T, col=color); map('state', add=T)
It is copied from page 6 in
Richard A. Becker, and Allan R. Wilks, "Maps in S", AT&T Bell 
Laboratories Statistics Research Report [93.2], 1993.
http://public.research.att.com/areas/stat/doc/93.2.ps

I also wonder whether the county names are available in the database 
used by map(), and, if yes, how to extract or utilize them.

Thanks!

Tord
#
The following example shows how to get/display the county names:

library(maps)

# Get County Data
m <- map('county', 'colorado', plot=FALSE)
names(m)
m$names   # State,County names

# The names appear to be in alphabetical order by state, e.g.:
[1] "colorado,adams"    "colorado,alamosa"  "colorado,arapahoe"

# Show county names on map
map.text('county', 'colorado', proj='bonne', param=45)

# Show county indices on map
map.text('county', 'colorado', proj='bonne', param=45, 
labels=paste(1:length(m$names)))

#or perhaps
map.text('county', 'colorado', proj='bonne', param=45, 
labels=paste(1:length(m$names)), col=1:length(m$names))


You can use your own labels vector above to show county abbreviations 
instead of full names, or other info, if desired.

Once you get the mapping of the counties, you can connect to other sources 
of information.

efg

"Tord Sn?ll" <Tord.Snall at nvb.slu.se> wrote in message 
news:45925504.2060401 at nvb.slu.se...
Hi,
I would like to plot a map of US counties using different colors. map()
seems to be the function to use, e.g.
library(maps); map('usa'); map('county', 'colorado', add=T,fill = T,
col=c(1:5))
plots Colorado counties using colours 1 to 5.

However, I want each color to represent a certain value - a value to be
picked from a data frame.
This code should show a correspoding map at the level of states:
state.names <- system('tr "[A-Z]" "[a-z]"', state.name)
map.states <- unix('sed "s/:.*//"', map(names=T,plot=F))
state.to.map <- match(map.states, state.names)
color<- votes.repub[state.to.map, votes.year = 1900] / 100
map('state', fill=T, col=color); map('state', add=T)
It is copied from page 6 in
Richard A. Becker, and Allan R. Wilks, "Maps in S", AT&T Bell
Laboratories Statistics Research Report [93.2], 1993.
http://public.research.att.com/areas/stat/doc/93.2.ps

I also wonder whether the county names are available in the database
used by map(), and, if yes, how to extract or utilize them.

Thanks!

Tord
#
Tord Sn?ll wrote:
Hi Tord,
I don't know if this matches the color to the state as I couldn't get 
your "unix" function to work, but it does what I think you want.

library(maps)
map("usa")
data(votes.repub)
library(plotrix)
state.col<-color.scale(votes.repub[,30],c(0,1),0,c(1,0))
map("state",fill=TRUE,col=state.col)

Jim