Dear all, I want to :
1. Estimate a weighted 2D kernel. 2. Paint a heatmap on a ggmap. Here is some reproducible data / code (I got it from the internet) : s_rit <- structure(list(score = c(45, 60, 38, 98, 98, 53, 90, 42, 96, 45, 89, 18, 66, 2, 45, 98, 6, 83, 63, 86, 63, 81, 70, 8, 78, 15, 7, 86, 15, 63, 55, 13, 83, 76, 78, 70, 64, 88, 61, 78, 4, 7, 1, 70, 88, 58, 70, 58, 11, 45, 28, 42, 45, 73, 85, 86, 25, 17, 53, 95, 49, 80, 70, 35, 94, 61, 39, 76, 28, 1, 18, 93, 73, 67, 56, 38, 45, 66, 18, 76, 91, 76, 52, 60, 2, 38, 73, 95, 1, 76, 6, 25, 76, 81, 35, 49, 85, 55, 66, 90), lat = c(28.040961, 27.321633, 27.457342, 26.541129, 27.889476, 26.365284, 28.555024, 26.541129, 26.272728, 28.279994, 27.889476, 28.279994, 26.6674, 26.272728, 25.776045, 26.541129, 30.247658, 26.365284, 25.450123, 27.889476, 26.541129, 27.264513, 26.718652, 28.044369, 28.251435, 27.264513, 26.272728, 26.272728, 28.040961, 30.312239, 27.889476, 26.541129, 26.6674, 27.321633, 26.365284, 28.279994, 26.718652, 30.23286, 28.040961, 30.193704, 30.312239, 28.044369, 27.457342, 25.450123, 30.23286, 30.312239, 30.193704, 28.279994, 30.247658, 26.541129, 26.365284, 28.279994, 27.321633, 25.776045, 26.272728, 30.23286, 30.312239, 26.718652, 26.541129, 25.450123, 28.251435, 28.185751, 25.450123, 28.040961, 27.321633, 28.279994, 27.321633, 27.321633, 27.321633, 28.279994, 26.718652, 28.362308, 27.264513, 26.365284, 28.279994, 30.23286, 25.450123, 28.362308, 25.450123, 25.776045, 30.193704, 28.251435, 27.457342, 27.321633, 28.185751, 27.457342, 27.889476, 26.541129, 26.541129, 30.23286, 30.312239, 26.718652, 25.450123, 26.139258, 28.040961, 30.23286, 26.718652, 28.185751, 28.044369, 28.555024), lon = c(-82.5498, -80.376729, -82.525985, -81.843986, -82.317701, -81.796389, -81.276464, -81.843986, -80.207508, -81.331178, -82.317701, -81.331178, -80.072089, -80.207508, -80.199437, -81.843986, -81.808664, -81.796389, -80.433557, -82.317701, -81.843986, -80.432125, -80.091078, -82.394639, -81.490407, -80.432125, -80.207508, -80.207508, -82.5498, -81.575916, -82.317701, -81.843986, -80.072089, -80.376729, -81.796389, -81.331178, -80.091078, -81.585975, -82.5498, -81.579846, -81.575916, -82.394639, -82.525985, -80.433557, -81.585975, -81.575916, -81.579846, -81.331178, -81.808664, -81.843986, -81.796389, -81.331178, -80.376729, -80.199437, -80.207508, -81.585975, -81.575916, -80.091078, -81.843986, -80.433557, -81.490407, -81.289394, -80.433557, -82.5498, -80.376729, -81.331178, -80.376729, -80.376729, -80.376729, -81.331178, -80.091078, -81.428494, -80.432125, -81.796389, -81.331178, -81.585975, -80.433557, -81.428494, -80.433557, -80.199437, -81.579846, -81.490407, -82.525985, -80.376729, -81.289394, -82.525985, -82.317701, -81.843986, -81.843986, -81.585975, -81.575916, -80.091078, -80.433557, -80.238901, -82.5498, -81.585975, -80.091078, -81.289394, -82.394639, -81.276464)), .Names = c("score", "lat", "lon"), row.names = c(3205L, 8275L, 4645L, 8962L, 9199L, 340L, 5381L, 8998L, 5476L, 4956L, 9256L, 4940L, 6681L, 5586L, 1046L, 9017L, 1878L, 323L, 4175L, 9236L, 8968L, 6885L, 5874L, 9412L, 6434L, 7168L, 5420L, 5680L, 3202L, 1486L, 9255L, 9009L, 6833L, 8271L, 261L, 5024L, 8028L, 1774L, 3329L, 1824L, 1464L, 9468L, 4643L, 4389L, 1506L, 1441L, 1826L, 4968L, 1952L, 8803L, 339L, 4868L, 8266L, 1334L, 5483L, 1727L, 1389L, 7944L, 8943L, 4416L, 6440L, 526L, 4478L, 3117L, 8308L, 4891L, 8290L, 8299L, 8233L, 4848L, 7922L, 5795L, 6971L, 179L, 4990L, 1776L, 4431L, 5718L, 4268L, 1157L, 1854L, 6433L, 4637L, 8194L, 560L, 4694L, 9274L, 8903L, 8877L, 1586L, 1398L, 5865L, 4209L, 6075L, 3307L, 1634L, 8108L, 514L, 9453L, 5210L), class = "data.frame") library(ggmap) library(RColorBrewer) MyMap <- get_map(location= "Orlando, FL", source="google", maptype="roadmap", crop=FALSE, zoom=7) YlOrBr <- c("#FFFFD4", "#FED98E", "#FE9929", "#D95F0E", "#993404") ggmap(MyMap) + stat_density_2d(data=s_rit, aes(x=lon, y=lat, fill=..level.., alpha=..level..), geom="polygon", size=0.01, bins=16) + scale_fill_gradient(low="red", high="green") + scale_alpha(range = c(0,0.3), guide=FALSE) The above computes 2d density but it does not take the score (the weight into account). To do a weighted KDE I do : library(ks) mydensity <- kde(x = s_rit[,c(2,3)],w = s_rit$score) This computes a weighted KDE,but the data can't be passed to geom_raster because the x,y's are 151 each while the estimated density is a matrix 151 x 151. However this can be accepted by image as shown below. library(reshape2) library(ggplot2) x <- mydensity$eval.points[[1]] y <- mydensity$eval.points[[2]] z <- mydensity$estimate image(x,y,z) How can I convert this data so that I can do ggmap + geom_raster? Also can I define eval.points in kde in a way that is relevant to the underlying ggmap? How can I tweak the eval.points in the context of a map ? Best Regards, Ashim [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.