ggmap: Spatial Visualization with ggplot2
By David J. Kahle, Hadley Wickham. The R Journal, 2013
1,905 citations recorded by the source corpus.
In spatial statistics the ability to visualize data and models superimposed with their basic social landmarks and geographic context is invaluable. ggmap is a new tool which enables such visualization by combining the spatial information of static maps from Google Maps, OpenStreetMap, Stamen Maps or CloudMade Maps with the layered grammar of graphics implementation of ggplot2. In addition, several new utility functions are introduced which allow the user to access the Google Geocoding, Distance Matrix, and Directions APIs. The result is an easy, consistent and modular framework for spatial graphics with several convenient tools for spatial data analysis. Introduction Visualizing spatial data in R can be a challenging task. Fortunately the task is made a good deal easier by the data structures and plot methods of sp, RgoogleMaps, and related packages (Pebesma and Bivand, 2006; Bivand et al., 2008; Loecher and Berlin School of Economics and Law, 2013). Using those methods, one can plot the basic geographic information of (for instance) a shape file containing polygons for areal data or points for point referenced data. However, compared to specialized geographic information systems (GISs) such as ESRI’s ArcGIS, which can plot points, polygons, etc. on top of maps and satellite imagery with drag-down menus, these visualizations can be pretty disappointing. This article details some new methods for the visualization of spatial data in R using the layered grammar of graphics implementation of ggplot2 in conjunction with the contextual information of static maps from Google Maps, OpenStreetMap, Stamen Maps or CloudMade Maps (Wickham, 2009, 2010). The result is an easy to use R package named ggmap. After describing the nuts and bolts of ggmap, we showcase some of its capabilities in a simple case study concerning violent crimes in downtown Houston, Texas and present an overview of a few utility functions. Plotting spatial data in R Areal data is data which corresponds to geographical extents with polygonal boundaries. A typical example is the number of residents per zip code. Considering only the boundaries of the areal units, we are used to seeing areal plots in R which resemble those in Figure 1 (left). -96.0 -95.5 -95.0 -94.5 29 .0 29 .5 30 .0 30 .5 longitude la tit ud e -96.0 -95.5 -95.0 -94.5 29 .0 29 .5 30 .0 30 .5 longitude la tit ud e Figure 1: A typical R areal plot – zip codes in the Greater Houston area (left), and a typical R spatial scatterplot – murders in Houston from January 2010 to August 2010 (right). While these kinds of plots are useful, they are not as informative as we would like in many situations. For instance, when plotting zip codes it is helpful to also see major roads and other landmarks which form the boundaries of areal units. The situation for point referenced spatial data is often much worse. Since we can’t easily contextualize a scatterplot of points without any background information at all, it is common to add points as The R Journal Vol. 5/1, June ISSN 2073-4859 CONTRIBUTED RESEARCH ARTICLES 145 an overlay of some areal data—whatever areal data is available. The resulting plot looks like Figure 1 (right). In most cases the plot is understandable to the researcher who has worked on the problem for some time but is of hardly any use to his audience, who must work to associate the data of interest with their location. Moreover, it leaves out many practical details—are most of the events to the east or west of landmark x? Are they clustered around more well-to-do parts of town, or do they tend to occur in disadvantaged areas? Questions like these can’t really be answered using these kinds of graphics because we don’t think in terms of small scale areal boundaries (e.g. zip codes or census tracts). With a little effort better plots can be made, and tools such as maps, maptools, sp, or RgoogleMaps make the process much easier; in fact, RgoogleMaps was the inspiration for ggmap (Becker et al., 2013; Bivand and Lewin-Koh, 2013). Moreover, there has recently been a deluge of interest in the subject of mapmaking in R—Ian Fellows’ excellent interactive GUI-driven DeducerSpatial package based on Bing Maps comes to mind (Fellows et al., 2013). ggmap takes another step in this direction by situating the contextual information of various kinds of static maps in the ggplot2 plotting framework. The result is an easy, consistent way of specifying plots which are readily interpretable by both expert and audience and safeguarded from graphical inconsistencies by the layered grammar of graphics framework. The result is a spatial plot resembling Figure 2. Note that map images and information in this work may appear slightly different due to map provider changes over time. murder <subset(crime, offense == "murder") qmplot(lon, lat, data = murder, colour = I(’red’), size = I(3), darken = .3)
Subfields: Artificial Intelligence, Computer Vision and Pattern Recognition, Ecology
View Paper: https://www.semanticscholar.org/paper/79da0d9d7d828169db3084024a4acf6c259d0c74
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Jan Peters
- Nicolai Meinshausen
- Peter Buhlmann
- Sebastian Engelke
- Bernhard Schölkopf
- Sergey Levine
- Nicola Gnecco
- Alexandre Antonelli
In Computer Vision and Pattern Recognition
- Nicola Gnecco
- Jan Peters
- Nicolai Meinshausen
- Michael Staab
- Martijn Tennekes
- Daniel Edler
- Sebastian Engelke
- T. Tscharntke
In Ecology
- Alexandra-Maria Klein
- Nicola Gnecco
- Jan Peters
- Christopher P. Meyer
- Serge Planes
- Nicolai Meinshausen
- Michael Staab
- S. Brandl
Citations in the corpus
- tmap: Thematic Maps in R (2018, methodology): “Maps made with ggplot2 can be enhanced by adding such as base layer with the ggmap package (Kahle and Wickham 2013; Lovelace 2015).”
- Trap nests for bees and wasps to analyse trophic interactions in changing environments—A systematic overview and user guide (2018, methodology): “Localities, in which trap nest research had been conducted, were mapped with the R- package “ggmap” (Kahle & Wickham, 2013).”
- CoordinateCleaner: Standardized cleaning of occurrence records from biological collection databases (2019, methodology): “…Conservation International, 2017; GeoNames, 2017; Global Biodiveristy Information Facility, 2017; Index Herbariorum, 2017; The Global Registry of Biodiversity Repositories, 2017; Wikipedia, 2017) and geo-referenced them using the ggmap and openCage R-packages (Kahle & Wickham, 2013; Salmon, 2017).”
- Causal discovery in heavy-tailed models (2019, methodology): “The plot is created with the ggmap R package developed by Kahle and Wickham [26].”
- Reconstructing hyperdiverse food webs: Gut content metabarcoding as a tool to disentangle trophic interactions on coral reefs (2019, methodology): “We conducted all analyses with the statistical software r (R Core Team, 2018) with the packages ggmap (Kahle & Wickham, 2013), vegan (Oksanen et al., 2018), eulerr (Larsson, 2019) and bipartite (Dormann, Fruend, Bluethgen, & Gruber, 2009).”