# John Snow, and Google Maps

In my previous post, I discussed how to use OpenStreetMaps (and standard plotting functions of R) to visualize John Snow’s dataset. But it is also possible to use Google Maps (and ggplot2 types of graphs).

```library(ggmap)
get_london <- get_map(c(-.137,51.513), zoom=17)
london <- ggmap(get_london)```

Again, the tricky part comes from the fact that the coordinate representation system, here, is not the same as the one used on Robin Wilson’s blog.

```> library(maptools)
> setwd("/cholera/")
coords.x1 coords.x2
0  529308.7  181031.4
1  529312.2  181025.2
2  529314.4  181020.3
3  529317.4  181014.3
4  529320.7  181007.9
5  529336.7  181006.0
> X <- deaths@coords```

or, use d X_deaths.RData. So now, we have to change it

```df_deaths <- data.frame(X)
library(sp)
library(rgdal)
coordinates(df_deaths)=~coords.x1+coords.x2
proj4string(df_deaths)=CRS("+init=epsg:27700")
df_deaths = spTransform(df_deaths,CRS("+proj=longlat +datum=WGS84"))```

Here, we have the same coordinate system as the one used in Google Maps. Now, we can add a layer, with the points,

`london + geom_point(aes(x=coords.x1, y=coords.x2),data=data.frame(df_deaths@coords),col="red")`

Again, it is possible to add the density, as an additional layer,

```london + geom_point(aes(x=coords.x1, y=coords.x2),
data=data.frame(df_deaths@coords),col="red")+
geom_density2d(data = data.frame(df_deaths@coords),
aes(x = coords.x1, y=coords.x2), size = 0.3) +
stat_density2d(data = data.frame(df_deaths@coords),
aes(x = coords.x1, y=coords.x2,fill = ..level.., alpha = ..level..),size = 0.01, bins = 16, geom = "polygon") + scale_fill_gradient(low = "green", high = "red",guide = FALSE) +
scale_alpha(range = c(0, 0.3), guide = FALSE)```

Cite this blog post
Arthur Charpentier (2015, February 27). John Snow, and Google Maps. Freakonometrics. Retrieved May 23, 2024, from https://doi.org/10.58079/ouyo

## 7 thoughts on “John Snow, and Google Maps”

1. Salut Arthur,
Juste une petite question technique. Pourrais-tu me dire avec quel système d’exploitation tu travailles : windows ? linux ? mac ? Et avec quelle version de R ? Je travaille usuellement avec la 3.0.2 et j’ai parfois des soucis pour installer des packages. Mais j’ai gardé une plus vielle au cas (2.15.3). Merci.

1. en fait, c’est vraiment le bordel ! je bosse à la fois au bureau sur une vieille version de R, sur windows, et sur mon laptop sur linux, avec une version plus récente. Et c’est effectivement l’horreur !

2. Panos says:

“deaths@coords”

Error in data.frame(deaths@coords) : trying to get slot “coords” from an object (class “data.frame”) that is not an S4 object

1. indeed…
it might be in one of the other “Cholera_Deaths” files… maybe the shp file ! I will check !

1. Panos says:

Thank you!

This site uses Akismet to reduce spam. Learn how your comment data is processed.