There was an interesting map on reddit this morning, with a visualisation of latitude and longituge of where people live, on Earth. So I tried to reproduce it. To compute the density, I used a kernel based approch
> library(maps) > data("world.cities") > X=world.cities[,c("lat","pop")] > liss=function(x,h){ + w=dnorm(x-X[,"lat"],0,h) + sum(X[,"pop"]*w) + } > vx=seq(-80,80) > vy=Vectorize(function(x) liss(x,1))(vx) > vy=vy/max(vy) > plot(world.cities$lon,world.cities$lat,) > for(i in 1:length(vx)) + abline(h=vx[i],col=rgb(1,0,0,vy[i]),lwd=2.7)
For the other axis, we use a miror technique, to ensure that -180 is close the +180
> Y=world.cities[,c("long","pop")] > Ya=Y; Ya[,1]=Y[,1]-360 > Yb=Y; Yb[,1]=Y[,1]+360 > Y=rbind(Y,Ya,Yb) > liss=function(y,h){ + w=dnorm(y-Y[,"long"],0,h) + sum(Y[,"pop"]*w) + } > vx=seq(-180,180) > vy=Vectorize(function(x) liss(x,1))(vx) > vy=vy/max(vy) > plot(world.cities$lon,world.cities$lat,pch=19) > for(i in 1:length(vx)) + abline(v=vx[i],col=rgb(1,0,0,vy[i]),lwd=2.7)
Now we can add the two, on the same graph
Related
R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: Data science, Big Data, R jobs, visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more…
If you got this far, why not subscribe for updates from the site? Choose your flavor: e-mail, twitter, RSS, or facebook…
Source:: r-bloggers.com