ggiraph (version 0.2.0)

geom_map_interactive: interactive polygons from a reference map.

Description

tooltips can be displayed when mouse is over segments, on click actions and double click actions can be set with javascript instructions.

Usage

geom_map_interactive(mapping = NULL, data = NULL, map, stat = "identity",
  na.rm = FALSE, show.legend = NA, inherit.aes = TRUE, ...)

Arguments

mapping
The aesthetic mapping, see geom_point.
data
A data frame, see geom_point.
map
Data frame that contains the map coordinates. See geom_map.
stat
The statistical transformation to use on the data for this layer, as a string, see geom_point.
na.rm
show.legend
inherit.aes
...
other arguments passed on to layer. See geom_point.

See Also

ggiraph

Examples

Run this code
# add interactive maps to a ggplot -------
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)
  ggiraph(code = print(gg_map), width = 8, height = 6)
}

Run the code above in your browser using DataCamp Workspace