es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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:
imagen

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
Tags:  , , ,

Answer

  1. Avatar for 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 coordenadas lat y lon 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.

Comments are closed.