Hi, 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 works:
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: head(data) X SiteCode Latitude Longitude p perc_per_year perc_per_year_lower 1 1 A30 51.37357 -0.29172504 0.369164267 -0.4781589 -1.390382 2 2 BB1 51.68299 -0.03254972 0.005546354 -3.1810064 -5.665312 3 3 BG1 51.56375 0.17789100 0.000405606 -3.2260763 -5.344999 4 4 BG2 51.52939 0.13285700 0.434756172 -5.1558318 -22.123800 5 5 BH1 50.82334 -0.13724510 0.183375348 -0.8735160 -2.240289 6 6 BH2 50.82785 -0.17051300 0.002702969 -2.1443157 -3.543378 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') class(england) #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(england.wgs) #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, duplicate='mean') 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!! Erika. -- 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@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.