Agregar límites de estado a un mapa coroplético interactivo en R plotly
Me gustaría crear un mapa de coropletas interactivo con R plotly, tal como se muestra en el ejemplo del mapa de coropletas de R-plotly en la página de inicio: https://plotly.com/r/mapbox-county-choropleth/
He logrado obtener un mapa interactivo con mis propios datos. Sin embargo, necesito incluir los límites de los estados, superpuestos en los condados y mostrar en la leyenda debajo de “colorbar” los límites de los estados.
Supongamos que tengo los límites de los estados como un archivo shapefile y lo he convertido a geojson, similar a los condados. ¿Dónde y qué declaración debo incluir en este script para obtener los límites de los estados superpuestos en el gráfico? No he encontrado un ejemplo específicamente para R.
El resultado debería verse así, solo con un Basemap.
Mapa de coropletas con límites de los estados:
Muchas gracias de antemano.
library(rjson)
library(plotly)
url <- 'https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json'
counties <- rjson::fromJSON(file=url)
url2<- "https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv"
df <- read.csv(url2, colClasses=c(fips="character"))
fig <- plot_ly()
fig <- fig %>% add_trace(
type="choroplethmapbox",
geojson=counties,
locations=df$fips,
z=df$unemp,
colorscale="Viridis",
zmin=0,
zmax=12,
marker=list(line=list(
width=0),
opacity=0.5
)
)
fig <- fig %>% layout(
mapbox=list(
style="carto-positron",
zoom =2,
center=list(lon= -95.71, lat=37.09))
)
fig
davy.ai
Para superponer los límites estatales en el mapa coropléjico, puedes agregar otra traza con el mismo archivo geojson que contiene los límites estatales y establecer el color y grosor de línea según sea necesario. Aquí está el código modificado:
“`{r}
library(rjson)
library(plotly)
Cargar datos geojson de los condados
url <- ‘https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json’
counties <- rjson::fromJSON(file=url)
Cargar datos geojson de los estados
url2 <- ‘https://raw.githubusercontent.com/plotly/datasets/master/geojson-us-states-fips.json’
states <- rjson::fromJSON(file=url2)
Cargar archivo de datos con los códigos FIPS de los condados y las tasas de desempleo
url3 <- ‘https://raw.githubusercontent.com/plotly/datasets/master/fips-unemp-16.csv’
df <- read.csv(url3, colClasses=c(fips=”character”))
Crear traza de mapa coropléjico para los condados
county_trace <- plot_ly() county_trace <- county_trace %>% add_trace(
type=”choroplethmapbox”,
geojson=counties,
locations=df$fips,
z=df$unemp,
colorscale=”Viridis”,
zmin=0,
zmax=12,
marker=list(line=list(
width=0),
opacity=0.5
)
)
Crear traza para los límites estatales
state_trace <- plot_ly() state_trace <- state_trace %>% add_trace(
type=”scattermapbox”,
mode=”lines”,
lat=states$features[[1]]$geometry$coordinates[[1]][,2],
lon=states$features[[1]]$geometry$coordinates[[1]][,1],
line=list(color=”white”, width=2)
)
Combinar las trazas de los condados y los límites estatales, y ajustar el diseño del mapa
fig <- county_trace %>%
add_trace(state_trace) %>%
layout(
mapbox=list(
style=”carto-positron”,
zoom =2,
center=list(lon= -95.71, lat=37.09)
),
legend=list(
title=list(text=”Tasa de Desempleo”)
)
)
fig
“`
Cabe destacar que en la traza de límites estatales, utilizamos
mode="lines"
para dibujar los límites estatales como líneas en lugar de marcadores. También especificamos las coordenadaslat
ylon
del archivo geojson de los estados, y establecemos el color y grosor de línea según sea necesario.El gráfico resultante debería mostrar tanto los límites de los condados como los límites estatales, con los límites estatales en blanco y más gruesos que las líneas de los condados. El título de la leyenda también debería establecerse como “Tasa de Desempleo”, como se especifica en la función
layout
.