R: Create interactive polygons from a reference map

geom_map_interactive {ggiraph} | R Documentation

## Create interactive polygons from a reference map

### Description

The geometry is based on `geom_map()`. See the documentation for those functions for more details.

### Usage

    geom_map_interactive(...)

### Arguments

`...` | arguments passed to base function, plus any of the `interactive_parameters()`.

### Details for geom_*_interactive functions

The interactive parameters can be supplied with two ways:

- As aesthetics with the mapping argument (via `aes()`). In this way they can be mapped to data columns and apply to a set of geometries.

- As plain arguments into the geom_*_interactive function. In this way they can be set to a scalar value.

### See Also

`girafe()`

### Examples

    # add interactive maps to a ggplot -------
    library(ggplot2)
    library(ggiraph)

    crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests)

    # create tooltips and onclick events
    states_ <- sprintf("<p>%s</p>",
                       as.character(crimes$state) )
    table_ <- paste0(
      "<table><tr><td>UrbanPop</td>",
      sprintf("<td>%.0f</td>", crimes$UrbanPop),
      "</tr><tr>",
      "<td>Assault</td>",
      sprintf("<td>%.0f</td>", crimes$Assault),
      "</tr></table>"
    )

    onclick <- sprintf(
      "window.open(\"%s%s\")",
      "http://en.wikipedia.org/wiki/",
      as.character(crimes$state)
    )

    crimes$labs <- paste0(states_, table_)
    crimes$onclick = onclick

    if (require("maps") ) {
      states_map <- map_data("state")
      gg_map <- ggplot(crimes, aes(map_id = state))
      gg_map <- gg_map + geom_map_interactive(aes(
                      fill = Murder,
                      tooltip = labs,
                      data_id = state,
                      onclick = onclick
                    ),
                    map = states_map) +
        expand_limits(x = states_map$long, y = states_map$lat)
      x <- girafe(ggobj = gg_map)
      if( interactive() ) print(x)
    }

[Package ggiraph version 0.7.9 Index]