Create interactive polygons from a reference map
Source:R/geom_map_interactive.R
geom_map_interactive.Rd
The geometry is based on ggplot2::geom_map()
.
See the documentation for those functions for more details.
Arguments
- ...
arguments passed to base function, plus any of the interactive_parameters.
Details for interactive geom functions
The interactive parameters can be supplied with two ways:
As aesthetics with the mapping argument (via
ggplot2::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.
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)
}
#> Loading required package: maps