Map Subplots And Small Multiples in R
How to create map subplots and small multiples in R.
Plotly Studio: Transform any dataset into an interactive data application in minutes with AI. Sign up for early access now.
Basic Subplots with Maps
library(plotly)
library(dplyr)
df <- read.csv('https://raw.githubusercontent.com/plotly/datasets/master/1962_2006_walmart_store_openings.csv')
# common map properties
g <- list(
scope = 'usa',
showland = T,
landcolor = toRGB("gray90"),
showcountries = F,
subunitcolor = toRGB("white")
)
one_map <- function(dat) {
plot_geo(dat) %>%
add_markers(x = ~LON, y = ~LAT, color = I("blue"), alpha = 0.5) %>%
add_text(x = -78, y = 47, text = ~unique(YEAR), color = I("black")) %>%
layout(geo = g)}
df <- df %>% group_by(YEAR)
df <- df %>% do(mafig = one_map(.))
fig <- df %>% subplot(nrows = 9)
fig <- fig %>% layout(
showlegend = FALSE,
title = 'New Walmart Stores per year 1962-2006<br> Source: <a href="http://www.econ.umn.edu/~holmes/data/WalMart/index.html">University of Minnesota</a>',
width = 1000,
height = 900,
hovermode = FALSE
)
fig
Click to copy
What About Dash?
Dash for R is an open-source framework for building analytical applications, with no Javascript required, and it is tightly integrated with the Plotly graphing library.
Learn about how to install Dash for R at https://dashr.plot.ly/installation.
Everywhere in this page that you see fig
, you can display the same figure in a Dash for R application by passing it to the figure
argument of the Graph
component from the built-in dashCoreComponents
package like this:
library(plotly)
fig <- plot_ly()
# fig <- fig %>% add_trace( ... )
# fig <- fig %>% layout( ... )
library(dash)
library(dashCoreComponents)
library(dashHtmlComponents)
app <- Dash$new()
app$layout(
htmlDiv(
list(
dccGraph(figure=fig)
)
)
)
app$run_server(debug=TRUE, dev_tools_hot_reload=FALSE)
Click to copy