Skip to content
Back to formatted view

Raw Message

Message-ID: <4A0AB01E.4000400@ecs.vuw.ac.nz>
Date: 2009-05-13T11:33:50Z
From: Ray Brownrigg
Subject: plotting a grid with color on a map
In-Reply-To: <23514804.post@talk.nabble.com>

dxc13 wrote:
> Hi all,
> I have posted similar questions regarding this topic, but I just can't seem
> to get over the hump and find a straightforward way to do this.  I have
> attached my file as a reference.
> Basically, the attached file is a 5 degree by 5 degree grid of the the world
> (2592 cells), most of them are NA's.  I just want to be able to plot this
> grid over a world map and color code the cells.  For example, if a cell has
> a temperature less than 20 degrees it will be blue, 21 to 50 green color,
> 51-70 orange, 71+ red colored cells.  For any NAs, they should be colored
> white.
> 
> I know how to create a map of the world using map() and add a grid to it
> using map.grid(), but I can't color code the cells the way I need.  Is there
> a way to do this in R?
> 
> Thanks again.
> dxc13 http://www.nabble.com/file/p23514804/time1test.txt time1test.txt 

How about the following, which doesn't need a grid at all?

library(maps)
temp <- as.matrix(read.table("time1test.txt"))
xvals <- c(0, 0, 5, 5, 0)
yvals <- c(0, 5, 5, 0, 0)
map("world")
palette(rainbow(50))
for (lat in seq(-90, 85, 5))
   for (lon in seq(-180, 175, 5)) {
     col <- temp[(lat + 95)/5, (lon + 185)/5]
     if (!is.na(col)) polygon(lat + xvals, lon + yvals, col=col, border=NA)
   }
palette("default")

HTH
Ray Brownrigg