[R] plotting x y z data from an irregular grid
ligges at statistik.tu-dortmund.de
Sun Jul 17 16:46:00 CEST 2011
Perhaps you want to ask on the SIG mailing list for spatial statistics.
I guess there is something available that makes use of cloud() [from
lattice], plot3d [from rgl] or scatterplot3d() [identically names
package] or others to satisfy your needs of plotting points atop of a
map, for example.
On 14.07.2011 15:39, erika wrote:
> I'm trying to plot some data (z) that is linked to lat&long coordinates
> (x&y). These coordinates are not however on a regular grid. I also have some
> shapefiles on which I would like to overlay the data. I can plot the
> shapefiles (country/city outlines) and overplot the data, but only using
> quilt.plot because I otherwise always get the error message that
> 'Error in image.default(..., add = add, col = col) :
> increasing 'x' and 'y' values expected'
> which has something to do with the organization of my data but I cannot
> figure out how to change it correctly. This is the code that I have that
> data<-read.csv('with coord_observational log data trends all years all
> data.8.11.10.csv', header=TRUE)
> ## this is what the 'data' looks like:
> X SiteCode Latitude Longitude p perc_per_year
> 1 1 A30 51.37357 -0.29172504 0.369164267 -0.4781589
> 2 2 BB1 51.68299 -0.03254972 0.005546354 -3.1810064
> 3 3 BG1 51.56375 0.17789100 0.000405606 -3.2260763
> 4 4 BG2 51.52939 0.13285700 0.434756172 -5.1558318
> 5 5 BH1 50.82334 -0.13724510 0.183375348 -0.8735160
> 6 6 BH2 50.82785 -0.17051300 0.002702969 -2.1443157
> perc_per_year_upper sig
> 1 0.4786508 -999.000000
> 2 -0.8588293 -3.181006
> 3 -1.5251377 -3.226076
> 4 11.0957982 -999.000000
> 5 0.3431518 -999.000000
> 6 -0.7966338 -2.144316
> #read in the shapefile
> england<-readShapePoly('D:/arcGIS/england boundary/england.shp')
> #define the projection
> proj4string(england)<-CRS('+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.999601271625
> +x_0=400000 +y_0=-100000 +ellps=airy +units=m +no_defs')
> # transform the map into the WGS84 projection (epsg:4326):
> england.wgs<-spTransform(england, CRS('+init=epsg:4326'))
> #plot data over the map:
> quilt.plot(data$Longitude, data$Latitude, data$perc_per_year, add=TRUE)
> My problem is that I would like to be able to change how this data looks
> (not just 'grid squares', but circles, etc) which I can't seem to do wtih
> quilt.plot. If I could do this I could plot one layer of gridded data
> (squares as in quilt.plot) and overlay a second layer of 'z' data as points.
> I have tried plot.surface and image.plot and a number of others, but because
> of the error message that I get above it won't work. I can use image.plot,
> etc if I create a grid and interpolate my data onto the grid (see code
> below), but I don't want interpolated data, I would like discreet values for
> each lat&long.
> x<-seq(-4,2, by=0.0625)
> y<-seq(50,53, by=0.0625)
> d1<-expand.grid(x=x, y=y)
> data.li<-interp(data$Longitude, data$Latitude, data$perc_per_year,
> So my questions are, (1) is there a different function that I should be
> using with my data as it is and still be able to overplot it onto the map
> that i've plotted? or (2) is there a way to create this grid and integrate
> my data into the grid, but not interpolate it?
> Any help would be very much appreciated. My R skills just are not good
> enough to do this yet.
> Thank you!!
> View this message in context: http://r.789695.n4.nabble.com/plotting-x-y-z-data-from-an-irregular-grid-tp3667605p3667605.html
> Sent from the R help mailing list archive at Nabble.com.
> R-help at r-project.org mailing list
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help