Creates an interactive flow map visualizing flows between various locations and outputs it as an HTML widget. This function utilizes the FlowmapBlue library to create maps with customizable options such as clustering, animation, and dark mode. The widget can be rendered in R Markdown, Shiny, or viewed in a browser. It can also be saved to html file with htmlwidgets:saveWidget(). See examples for more details.
Usage
flowmapblue(
locations,
flows,
mapboxAccessToken = NULL,
clustering = TRUE,
animation = FALSE,
darkMode = FALSE
)Arguments
- locations
A
data.framecontaining the location data. Thedata.frameshould have the following columns:- id
A character vector representing the unique identifier for each location (e.g., "JU", "LU").
- name
(Optional) A character vector representing the name of each location (e.g., "Jura", "Luzern").
- lat
A numeric vector representing the latitude of each location in WGS84 (EPSG: 4326) coordinate reference system.
- lon
A numeric vector representing the longitude of each location in WGS84 (EPSG: 4326) coordinate reference system.
- flows
A
data.framecontaining the flow data between locations. Thedata.frameshould have the following columns:- origin
A
charactervector representing the origin location identifier (must match theidinlocations).- dest
A
charactervector representing the destination location identifier (must match theidinlocations).- count
An
integervector representing the flow count between the origin and destination locations.- time
(Optional) A vector of
POSIXctorDateobjects representing the date or date and time of the flow.
- mapboxAccessToken
A
characterstring representing the Mapbox access token. This is required to render the map using Mapbox tiles. You can obtain a free token at https://account.mapbox.com/.- clustering
A
logicalvalue indicating whether to enable clustering of locations on the map. Defaults toTRUE.- animation
A
logicalvalue indicating whether to enable animation of flows on the map. Defaults toFALSE.- darkMode
A
logicalvalue indicating whether to enable dark mode for the map. Defaults toFALSE.
Value
An HTML widget of class flowmapblue and htmlwidget that can be rendered in R Markdown, Shiny, or viewed in a browser. It can also be saved to html file with htmlwidgets:saveWidget(). See examples for more details.
Examples
if (FALSE) { # \dontrun{
# example 1, normal flows
# set your Mapbox access token
Sys.setenv(MAPBOX_API_TOKEN = "YOUR_MAPBOX_ACCESS_TOKEN")
# load locations and flows for Switzerland
locations <- data(ch_locations)
flows <- data(ch_flows)
flowmap <- flowmapblue(
locations,
flows,
mapboxAccessToken = Sys.getenv('MAPBOX_API_TOKEN'),
clustering = TRUE,
darkMode = TRUE,
animation = FALSE
)
# view the map
flowmap
# or save it as an HTML file
htmlwidgets::saveWidget(flowmap, file = "flowmap.html")
# example 2, flows with date in time column
# set your Mapbox access token
Sys.setenv(MAPBOX_API_TOKEN = "YOUR_MAPBOX_ACCESS_TOKEN")
# load locations and flows for Switzerland
data(ch_locations)
data(ch_flows)
# generate fake datetime
flows$time <- seq(from =as.POSIXct("2020-01-01"),
to = as.POSIXct("2020-01-05"), length.out = nrow(flows))
flowmap <- flowmapblue(
ch_locations,
ch_flows,
mapboxAccessToken = Sys.getenv('MAPBOX_API_TOKEN'),
clustering = TRUE,
darkMode = TRUE,
animation = FALSE
)
# view the map
flowmap
# example 3, flows with date in time column
# set your Mapbox access token
Sys.setenv(MAPBOX_API_TOKEN = "YOUR_MAPBOX_ACCESS_TOKEN")
# load locations and flows for Switzerland
data(ch_locations)
data(ch_flows)
# generate fake dates
flows$time <- seq(from = as.Date("2020-01-01"),
to = as.Date("2020-06-01"), length.out = nrow(flows))
flowmap <- flowmapblue(
ch_locations,
ch_flows,
mapboxAccessToken = Sys.getenv('MAPBOX_API_TOKEN'),
clustering = TRUE,
darkMode = TRUE,
animation = FALSE
)
# view the map
flowmap
} # }