SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Curso sobre el software estad´ıstico R: La librer´ıa maptools
Ponente: Carlos P´erez Glez.
Entidades participantes en el curso:
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 1 / 19
La librer´ıa maptools
1 Esta librer´ıa es un conjunto de herramientas para leer y manejar objetos espaciales.
2 En particular, permite cargar archivos ESRI shapefiles (.shp).
3 Esta librer´ıa se suele utilizar en combinaci´on con otras: sp (clases y m´etodos para datos
geo-espaciales), RColorBrewer (paletas de colores) y ggplot2 (librar´ıa gr´afica). Website
(blog): http://rspatialtips.org.uk/ Tutorial:
https://dl.dropbox.com/u/9577903/broomspatial.pdf
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 2 / 19
Cargar archivos shapefiles (line)
Cargamos los archivos de las 27 comarcas de canarias:
library(maptools)
canary.counties <- readShapeLines (fn = "ISTAC_comarcas27_R.shp")
plot(canary.counties , axes = TRUE , col = "red")
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 3 / 19
Cargar archivos shapefiles (poly)
Vamos a cargar el mapa en forma de pol´ıgonos (Poly Shape):
canary.counties <- readShapePoly (fn = "ISTAC_comarcas27_R.shp")
plot(canary.counties , axes = TRUE , col = "red")
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 4 / 19
Objetos shapefiles
Para examinar el objeto canary.counties que hemos cargado:
canary.counties
summary(canary.counties)
slotNames(canary.counties)
canary. counties@data
canary. counties@polygons [[1]]
Observamos que los ejes representados no corresponden a las escalas de latitud y longitud de un
mapa:
print(proj4string(canary.counties ))
proj4string(canary.counties) <- "+proj=longlat +datum=WGS84"
print(proj4string(canary.counties ))
plot(canary.counties , axes = TRUE)
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 5 / 19
El slot “data”
Para representar una variable en un mapa, lo m´as com´un es asociar al slot “data” los valores de
la variable utilizando el comando merge(). Por ejemplo:
censal.hombres <- data.comarcas.censal[data.comarcas.censal$sexo == "men", ]
canary.tmp <- merge(canary.counties@data , censal.hombres , by.x = "CODCOM", by.y = "comarca",
sort = FALSE)
canary. counties@data $sexoH <- canary.tmp$sexo
canary. counties@data $censoH <- canary.tmp$censo
Tambien se puede utilizar el comando match(). Por ejemplo:
censal.mujeres <- data.comarcas.censal[data.comarcas.censal$sexo == "women",
]
idx <- match(canary. counties@data $CODCOM , censal.mujeres$comarca)
canary. counties@data $sexoM <- censal.mujeres$sexo[idx]
canary. counties@data $censoM <- censal.mujeres$censo[idx]
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 6 / 19
Mapa de intensidad
Para representar un mapa de intensidad, necesitamos definir una paleta de colores y luego el
comando spplot();
library(classInt)
library( RColorBrewer )
n = 7
# obtener una paleta de 7 colores
pal <- brewer.pal(n, "Blues")
# obtener intervalos de clase para 7 colores
int <- classIntervals (canary. counties@data $censoH , n, style = "jenks")
p <- spplot(canary.counties["censoH"], col.regions = pal , at = signif(int$brks ,
digits = 2), lwd = 0.4, col = "black")
p
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 7 / 19
Paletas de colores
La comarca con menor valor del censo se puede quedar de color blanco:
# correcci ´on del primer color de la escala
int$brks [1] <- 1000
# comprobar el orden de representaci ´on
canary. counties@data [order(canary. counties@data $censoH), ]
Podemos utilizar otras paletas:
# Paletas
# display . brewer .pal(n, ’Blues ’)
pie(rep(1, n), col = brewer.pal(n, "Blues"))
pie(rep(1, n), col = brewer.pal(n, "YlOrRd"))
pie(rep(1, n), col = heat.colors(n))
pie(rep(1, n), col = terrain.colors(n))
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 8 / 19
Intervalos de clase
pal <- heat.colors(n)
p <- spplot(canary.counties["censoH"], col.regions = pal , at = signif(int$brks ,
digits = 2), lwd = 0.4, col = "black")
p
Se pueden utilizar otros m´etodos para los intervalos de clase:
# Intervalos de clase
int <- classIntervals (canary. counties@data $censoH , n, style = "quantile")
int <- classIntervals (canary. counties@data $censoH , n, style = "pretty")
int <- classIntervals (canary. counties@data $censoH , n, style = "jenks")
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 9 / 19
M´etodos alternativos representaci´on de mapas
Podemos utilizar otros m´etodos de representaci´on, plot() + legend():
# Representaciones alternativas
plot(canary.counties , col = pal[ findInterval (canary. counties@data $censoH , int$brks ,
all.inside = TRUE)], axes = TRUE)
legend(x = -18, y = 30.5 , legend = leglabs(round(int$brks)), cex = 0.9, fill = pal ,
bty = "n", x.intersp = 0.5)
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 10 / 19
M´etodos alternativos representaci´on de mapas
Otros m´etodos de representaci´on, fortify()+ggplot2():
# Otra mas
library(ggplot2)
# convertir el objeto ’SpatialPolygons ’ en data.frame
canary.fort <- fortify(canary.counties , region = "IDCOM27")
head(canary.fort)
canary.fort <- merge(canary.fort , canary. counties@data [, c("IDCOM27", "censoH")],
by.x = "id", by.y = "IDCOM27", sort = FALSE)
ggplot(data = canary.fort , aes(long , lat , group = group )) + geom_polygon(colour = "black",
fill = "white")
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 11 / 19
M´etodos alternativos representaci´on de mapas
Entonces:
map <- ggplot(data = canary.fort , aes(long , lat , group = group , fill = censoH )) +
geom_polygon () + geom_path(color = "white")
map
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 12 / 19
Representaciones en escalas discretas
Otras variantes con ggplot2():
map + scale_fill_gradient(low = "white", high = "black")
map + scale_fill_gradient(name = "censo", breaks = c(10000 , 50000 , 90000))
map + scale_fill_gradientn(colours = brewer.pal(7, "Blues"), limits = c(1000 ,
1e+05))
Podemos utilizar escalas discretas en el gr´afico:
canary.fort$censoH.discreto <- cut(canary.fort$censoH , breaks = c(1000 , 3000 ,
6000 , 9000 , 12000 , 15000 , 18000 , 21000 , Inf), labels = c("1000 -3000", "3000 -6000",
"6000 -9000", "9000 -12000", "12000 -15000", "15000 -18000", "18000 -21000",
" >21000"), include.lowest = TRUE)
head(canary.fort)
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 13 / 19
Representaciones en escalas discretas
Entonces:
map <- ggplot(data = canary.fort , aes(long , lat , group = group , fill = censoH.discreto )) +
geom_polygon () + geom_path(color = "white")
map
# map + scale_fill_brewer (’Censo hombres total ’)
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 14 / 19
Representaciones en escalas discretas
Podemos representar las comarcas de una isla:
# canary . counties@data [ canary . counties@data $ CODISLA ==’GC ’,]
idx <- canary.fort$id %in % canary. counties@data [canary. counties@data $CODISLA ==
"GC", "IDCOM27"]
canary.fort2 <- canary.fort[idx , ]
map <- ggplot(data = canary.fort2 , aes(long , lat , group = group , fill = censoH.discreto )) +
geom_polygon () + geom_path(color = "white")
map
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 15 / 19
Representaciones con gr´aficos panel
Podemos representar con ggplot:
canary.fort <- merge(canary.fort , canary. counties@data [, c("IDCOM27", "IDPROV",
"PROV", "CODISLA", "ISLA")], by.x = "id", by.y = "IDCOM27", sort = FALSE)
idx <- canary.fort$id %in % canary. counties@data [canary. counties@data $PROV ==
"Santa Cruz de Tenerife", "IDCOM27"]
canary.fort2 <- canary.fort[idx , ]
map <- ggplot(data = canary.fort2 , aes(long , lat , group = group , fill = censoH.discreto )) +
geom_polygon () + geom_path(color = "white")
map + facet_grid(PROV ~ ISLA , scales = "free_x")
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 16 / 19
Representaciones con ggplot2
Veamos algunas representaciones con ggplot2
canary.data <- canary. counties@data [canary. counties@data $PROV == "Santa Cruz de Tenerife",
]
canary.plot <- ggplot(data = canary.data[canary.data$CODISLA == "LP", ], aes(x = CODCOM ,
y = censoH , group = 1)) + geom_line () + geom_point ()
canary.plot + facet_grid(PROV ~ ISLA)
canary.plot <- ggplot(data = canary.data , aes(x = CODCOM , y = censoH , group = 1)) +
geom_line () + geom_point ()
canary.plot + facet_grid(PROV ~ ISLA)
canary.plot + facet_grid(PROV ~ ISLA , scales = "free_x")
canary.plot <- ggplot(data = canary.data , aes(x = CODCOM , y = censoH , group = 1)) +
geom_bar(colour = "black", fill = "#DD8888", stat = "identity")
canary.plot + facet_grid(PROV ~ ISLA , scales = "free_x")
canary.plot + facet_grid(PROV ~ ISLA , scales = "free_x", space = "free")
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 17 / 19
Representaciones con ggplot2
source("arrange_ggplot2.txt")
tenerife.data <- canary. counties@data [canary. counties@data $PROV == "Santa Cruz de Tenerife",
]
canary.plot1 <- ggplot(data = tenerife.data , aes(x = CODCOM , y = censoH , group = 1)) +
geom_line () + geom_point () + facet_grid(PROV ~ ISLA , scales = "free_x",
space = "free") + xlab("Small areas (counties)") + ylab("Total")
laspalmas.data <- canary. counties@data [canary. counties@data $PROV == "Las Palmas",
]
canary.plot2 <- ggplot(data = laspalmas.data , aes(x = CODCOM , y = censoH , group = 1)) +
geom_line () + geom_point () + facet_grid(PROV ~ ISLA , scales = "free_x",
space = "free") + xlab("Small areas (counties)") + ylab("Total")
arrange_ggplot2(canary.plot1 , canary.plot2 , ncol = 1)
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 18 / 19
Representaciones con ggplot2
canary.plot1 <- ggplot(data = tenerife.data , aes(x = CODCOM , y = censoH , group = 1)) +
geom_bar(colour = "black", fill = "#DD8888", stat = "identity") + facet_grid(PROV ~
ISLA , scales = "free_x", space = "free") + xlab("Small areas (counties)") +
ylab("Total")
canary.plot2 <- ggplot(data = laspalmas.data , aes(x = CODCOM , y = censoH , group = 1)) +
geom_bar(colour = "black", fill = "#DD8888", stat = "identity") + facet_grid(PROV ~
ISLA , scales = "free_x", space = "free") + xlab("Small areas (counties)") +
ylab("Total")
arrange_ggplot2(canary.plot1 , canary.plot2 , ncol = 1)
Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 19 / 19

Más contenido relacionado

La actualidad más candente (8)

Apunte clase
Apunte claseApunte clase
Apunte clase
 
solucionario
solucionariosolucionario
solucionario
 
Exponencial2
Exponencial2Exponencial2
Exponencial2
 
Logaritmos 4 def._y_func._pp_tminimizer_
Logaritmos 4 def._y_func._pp_tminimizer_Logaritmos 4 def._y_func._pp_tminimizer_
Logaritmos 4 def._y_func._pp_tminimizer_
 
Logaritmo, definicion y propiedades
Logaritmo, definicion y propiedadesLogaritmo, definicion y propiedades
Logaritmo, definicion y propiedades
 
Elemento 2 progra
Elemento 2 prograElemento 2 progra
Elemento 2 progra
 
Practica 10
Practica 10Practica 10
Practica 10
 
prueba lenguajes de programacion
prueba lenguajes de programacionprueba lenguajes de programacion
prueba lenguajes de programacion
 

Destacado (6)

R: Taller de Introducción
R: Taller de IntroducciónR: Taller de Introducción
R: Taller de Introducción
 
Introduccion al Programa R
Introduccion al Programa RIntroduccion al Programa R
Introduccion al Programa R
 
Estadisticas Descriptivas e Inferencia utilizando R (Taller Intermedio) UPDATED
Estadisticas Descriptivas e Inferencia utilizando R (Taller Intermedio) UPDATEDEstadisticas Descriptivas e Inferencia utilizando R (Taller Intermedio) UPDATED
Estadisticas Descriptivas e Inferencia utilizando R (Taller Intermedio) UPDATED
 
Medidas de-posicion-percentiles-arvelo mmmmmmmmmm
Medidas de-posicion-percentiles-arvelo mmmmmmmmmmMedidas de-posicion-percentiles-arvelo mmmmmmmmmm
Medidas de-posicion-percentiles-arvelo mmmmmmmmmm
 
Geoestadística con R
Geoestadística con RGeoestadística con R
Geoestadística con R
 
Cartilla Nacional De Vacunación De México
Cartilla Nacional De Vacunación De MéxicoCartilla Nacional De Vacunación De México
Cartilla Nacional De Vacunación De México
 

Similar a (4) Curso sobre el software estadístico R: La librería maptools

Función arco seno en matlab(ups)
Función arco seno en matlab(ups)Función arco seno en matlab(ups)
Función arco seno en matlab(ups)
JESIKMARCE
 
Montecarlo
MontecarloMontecarlo
Montecarlo
manu731
 

Similar a (4) Curso sobre el software estadístico R: La librería maptools (13)

(2) Curso sobre el software estadístico R: La librería googleVis
(2) Curso sobre el software estadístico R: La librería googleVis(2) Curso sobre el software estadístico R: La librería googleVis
(2) Curso sobre el software estadístico R: La librería googleVis
 
36417557 manual-surfer
36417557 manual-surfer36417557 manual-surfer
36417557 manual-surfer
 
clase 7 GRAFICOS 2D.pdf
clase 7 GRAFICOS 2D.pdfclase 7 GRAFICOS 2D.pdf
clase 7 GRAFICOS 2D.pdf
 
Presentación caRtociudad
Presentación caRtociudadPresentación caRtociudad
Presentación caRtociudad
 
Estadística con Lenguaje R: Sesión 9
Estadística con Lenguaje R: Sesión 9Estadística con Lenguaje R: Sesión 9
Estadística con Lenguaje R: Sesión 9
 
PROGRAMA
PROGRAMAPROGRAMA
PROGRAMA
 
Diapograficos
DiapograficosDiapograficos
Diapograficos
 
El Tratamiento Gráfico de Los Modelos Digitales de Terreno. Fuentes de Erro...
El Tratamiento Gráfico de  Los Modelos Digitales de Terreno.  Fuentes de Erro...El Tratamiento Gráfico de  Los Modelos Digitales de Terreno.  Fuentes de Erro...
El Tratamiento Gráfico de Los Modelos Digitales de Terreno. Fuentes de Erro...
 
LS Roller Coaster reloaded
LS Roller Coaster reloadedLS Roller Coaster reloaded
LS Roller Coaster reloaded
 
Tensor metrico
Tensor metricoTensor metrico
Tensor metrico
 
Función arco seno en matlab(ups)
Función arco seno en matlab(ups)Función arco seno en matlab(ups)
Función arco seno en matlab(ups)
 
Guia de recursos digitales
Guia de recursos digitales Guia de recursos digitales
Guia de recursos digitales
 
Montecarlo
MontecarloMontecarlo
Montecarlo
 

Más de Instituto Canario de Estadística (ISTAC)

Más de Instituto Canario de Estadística (ISTAC) (20)

Sistema de Datos Integrados (iDatos) - capacidades analíticas
Sistema de Datos Integrados (iDatos) - capacidades analíticasSistema de Datos Integrados (iDatos) - capacidades analíticas
Sistema de Datos Integrados (iDatos) - capacidades analíticas
 
Turismo Canarias 2018. Islas
Turismo Canarias 2018. IslasTurismo Canarias 2018. Islas
Turismo Canarias 2018. Islas
 
Crecimiento vegetativo
Crecimiento vegetativoCrecimiento vegetativo
Crecimiento vegetativo
 
Indicadores para politicas publicas
Indicadores para politicas publicasIndicadores para politicas publicas
Indicadores para politicas publicas
 
Presentacion chatbot istac
Presentacion chatbot istacPresentacion chatbot istac
Presentacion chatbot istac
 
[Jecas2018] entorno de computo estadistico en e datos
[Jecas2018] entorno de computo estadistico en e datos[Jecas2018] entorno de computo estadistico en e datos
[Jecas2018] entorno de computo estadistico en e datos
 
[Jecas2018] estadisticas suburbanas de poblacion y su relacion con la actividad
[Jecas2018] estadisticas suburbanas de poblacion y su relacion con la actividad[Jecas2018] estadisticas suburbanas de poblacion y su relacion con la actividad
[Jecas2018] estadisticas suburbanas de poblacion y su relacion con la actividad
 
[Jecas2018] marco de desarrollo del sistema de datos integrados de canarias
[Jecas2018] marco de desarrollo del sistema de datos integrados de canarias[Jecas2018] marco de desarrollo del sistema de datos integrados de canarias
[Jecas2018] marco de desarrollo del sistema de datos integrados de canarias
 
[Jecas2018] marco de estadistica espacial de canarias
[Jecas2018] marco de estadistica espacial de canarias[Jecas2018] marco de estadistica espacial de canarias
[Jecas2018] marco de estadistica espacial de canarias
 
Matrimonios. 2015
Matrimonios. 2015Matrimonios. 2015
Matrimonios. 2015
 
Nombres más comunes entre recién nacidos. 2016
Nombres más comunes entre recién nacidos. 2016Nombres más comunes entre recién nacidos. 2016
Nombres más comunes entre recién nacidos. 2016
 
201807 gobcan jordanas datos abiertos
201807  gobcan   jordanas datos abiertos 201807  gobcan   jordanas datos abiertos
201807 gobcan jordanas datos abiertos
 
Análisis regional e insular de las predicciones de entradas de pasajeros en C...
Análisis regional e insular de las predicciones de entradas de pasajeros en C...Análisis regional e insular de las predicciones de entradas de pasajeros en C...
Análisis regional e insular de las predicciones de entradas de pasajeros en C...
 
La estadística pública en la evaluación de políticas publicas. 2ª parte
La estadística pública en la evaluación de políticas publicas. 2ª parteLa estadística pública en la evaluación de políticas publicas. 2ª parte
La estadística pública en la evaluación de políticas publicas. 2ª parte
 
La estadística pública en la evaluación de políticas: Introducción a la esta...
La estadística pública en la evaluación  de políticas: Introducción a la esta...La estadística pública en la evaluación  de políticas: Introducción a la esta...
La estadística pública en la evaluación de políticas: Introducción a la esta...
 
Apuntes metodológicos de la Encuesta de Seguimiento de la Marca Turística de ...
Apuntes metodológicos de la Encuesta de Seguimiento de la Marca Turística de ...Apuntes metodológicos de la Encuesta de Seguimiento de la Marca Turística de ...
Apuntes metodológicos de la Encuesta de Seguimiento de la Marca Turística de ...
 
Casos de uso de fuentes big data en las estadísticas económicas de Canarias
Casos de uso de fuentes big data en las estadísticas económicas de CanariasCasos de uso de fuentes big data en las estadísticas económicas de Canarias
Casos de uso de fuentes big data en las estadísticas económicas de Canarias
 
REGIONAL TOURISM INFORMATION SYSTEM (R-TIS) OF THE CANARY ISLANDS . A strateg...
REGIONAL TOURISM INFORMATION SYSTEM (R-TIS) OF THE CANARY ISLANDS. A strateg...REGIONAL TOURISM INFORMATION SYSTEM (R-TIS) OF THE CANARY ISLANDS. A strateg...
REGIONAL TOURISM INFORMATION SYSTEM (R-TIS) OF THE CANARY ISLANDS . A strateg...
 
SISTEMA REGIONAL DE ESTADÍSTICAS DE TURISMO. Una aproximación estratégica
SISTEMA REGIONAL DE ESTADÍSTICAS DE TURISMO. Una aproximación estratégicaSISTEMA REGIONAL DE ESTADÍSTICAS DE TURISMO. Una aproximación estratégica
SISTEMA REGIONAL DE ESTADÍSTICAS DE TURISMO. Una aproximación estratégica
 
Entidades y núcleos turísticos. estadísticas asociadas
Entidades y núcleos turísticos. estadísticas asociadasEntidades y núcleos turísticos. estadísticas asociadas
Entidades y núcleos turísticos. estadísticas asociadas
 

(4) Curso sobre el software estadístico R: La librería maptools

  • 1. Curso sobre el software estad´ıstico R: La librer´ıa maptools Ponente: Carlos P´erez Glez. Entidades participantes en el curso: Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 1 / 19
  • 2. La librer´ıa maptools 1 Esta librer´ıa es un conjunto de herramientas para leer y manejar objetos espaciales. 2 En particular, permite cargar archivos ESRI shapefiles (.shp). 3 Esta librer´ıa se suele utilizar en combinaci´on con otras: sp (clases y m´etodos para datos geo-espaciales), RColorBrewer (paletas de colores) y ggplot2 (librar´ıa gr´afica). Website (blog): http://rspatialtips.org.uk/ Tutorial: https://dl.dropbox.com/u/9577903/broomspatial.pdf Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 2 / 19
  • 3. Cargar archivos shapefiles (line) Cargamos los archivos de las 27 comarcas de canarias: library(maptools) canary.counties <- readShapeLines (fn = "ISTAC_comarcas27_R.shp") plot(canary.counties , axes = TRUE , col = "red") Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 3 / 19
  • 4. Cargar archivos shapefiles (poly) Vamos a cargar el mapa en forma de pol´ıgonos (Poly Shape): canary.counties <- readShapePoly (fn = "ISTAC_comarcas27_R.shp") plot(canary.counties , axes = TRUE , col = "red") Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 4 / 19
  • 5. Objetos shapefiles Para examinar el objeto canary.counties que hemos cargado: canary.counties summary(canary.counties) slotNames(canary.counties) canary. counties@data canary. counties@polygons [[1]] Observamos que los ejes representados no corresponden a las escalas de latitud y longitud de un mapa: print(proj4string(canary.counties )) proj4string(canary.counties) <- "+proj=longlat +datum=WGS84" print(proj4string(canary.counties )) plot(canary.counties , axes = TRUE) Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 5 / 19
  • 6. El slot “data” Para representar una variable en un mapa, lo m´as com´un es asociar al slot “data” los valores de la variable utilizando el comando merge(). Por ejemplo: censal.hombres <- data.comarcas.censal[data.comarcas.censal$sexo == "men", ] canary.tmp <- merge(canary.counties@data , censal.hombres , by.x = "CODCOM", by.y = "comarca", sort = FALSE) canary. counties@data $sexoH <- canary.tmp$sexo canary. counties@data $censoH <- canary.tmp$censo Tambien se puede utilizar el comando match(). Por ejemplo: censal.mujeres <- data.comarcas.censal[data.comarcas.censal$sexo == "women", ] idx <- match(canary. counties@data $CODCOM , censal.mujeres$comarca) canary. counties@data $sexoM <- censal.mujeres$sexo[idx] canary. counties@data $censoM <- censal.mujeres$censo[idx] Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 6 / 19
  • 7. Mapa de intensidad Para representar un mapa de intensidad, necesitamos definir una paleta de colores y luego el comando spplot(); library(classInt) library( RColorBrewer ) n = 7 # obtener una paleta de 7 colores pal <- brewer.pal(n, "Blues") # obtener intervalos de clase para 7 colores int <- classIntervals (canary. counties@data $censoH , n, style = "jenks") p <- spplot(canary.counties["censoH"], col.regions = pal , at = signif(int$brks , digits = 2), lwd = 0.4, col = "black") p Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 7 / 19
  • 8. Paletas de colores La comarca con menor valor del censo se puede quedar de color blanco: # correcci ´on del primer color de la escala int$brks [1] <- 1000 # comprobar el orden de representaci ´on canary. counties@data [order(canary. counties@data $censoH), ] Podemos utilizar otras paletas: # Paletas # display . brewer .pal(n, ’Blues ’) pie(rep(1, n), col = brewer.pal(n, "Blues")) pie(rep(1, n), col = brewer.pal(n, "YlOrRd")) pie(rep(1, n), col = heat.colors(n)) pie(rep(1, n), col = terrain.colors(n)) Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 8 / 19
  • 9. Intervalos de clase pal <- heat.colors(n) p <- spplot(canary.counties["censoH"], col.regions = pal , at = signif(int$brks , digits = 2), lwd = 0.4, col = "black") p Se pueden utilizar otros m´etodos para los intervalos de clase: # Intervalos de clase int <- classIntervals (canary. counties@data $censoH , n, style = "quantile") int <- classIntervals (canary. counties@data $censoH , n, style = "pretty") int <- classIntervals (canary. counties@data $censoH , n, style = "jenks") Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 9 / 19
  • 10. M´etodos alternativos representaci´on de mapas Podemos utilizar otros m´etodos de representaci´on, plot() + legend(): # Representaciones alternativas plot(canary.counties , col = pal[ findInterval (canary. counties@data $censoH , int$brks , all.inside = TRUE)], axes = TRUE) legend(x = -18, y = 30.5 , legend = leglabs(round(int$brks)), cex = 0.9, fill = pal , bty = "n", x.intersp = 0.5) Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 10 / 19
  • 11. M´etodos alternativos representaci´on de mapas Otros m´etodos de representaci´on, fortify()+ggplot2(): # Otra mas library(ggplot2) # convertir el objeto ’SpatialPolygons ’ en data.frame canary.fort <- fortify(canary.counties , region = "IDCOM27") head(canary.fort) canary.fort <- merge(canary.fort , canary. counties@data [, c("IDCOM27", "censoH")], by.x = "id", by.y = "IDCOM27", sort = FALSE) ggplot(data = canary.fort , aes(long , lat , group = group )) + geom_polygon(colour = "black", fill = "white") Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 11 / 19
  • 12. M´etodos alternativos representaci´on de mapas Entonces: map <- ggplot(data = canary.fort , aes(long , lat , group = group , fill = censoH )) + geom_polygon () + geom_path(color = "white") map Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 12 / 19
  • 13. Representaciones en escalas discretas Otras variantes con ggplot2(): map + scale_fill_gradient(low = "white", high = "black") map + scale_fill_gradient(name = "censo", breaks = c(10000 , 50000 , 90000)) map + scale_fill_gradientn(colours = brewer.pal(7, "Blues"), limits = c(1000 , 1e+05)) Podemos utilizar escalas discretas en el gr´afico: canary.fort$censoH.discreto <- cut(canary.fort$censoH , breaks = c(1000 , 3000 , 6000 , 9000 , 12000 , 15000 , 18000 , 21000 , Inf), labels = c("1000 -3000", "3000 -6000", "6000 -9000", "9000 -12000", "12000 -15000", "15000 -18000", "18000 -21000", " >21000"), include.lowest = TRUE) head(canary.fort) Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 13 / 19
  • 14. Representaciones en escalas discretas Entonces: map <- ggplot(data = canary.fort , aes(long , lat , group = group , fill = censoH.discreto )) + geom_polygon () + geom_path(color = "white") map # map + scale_fill_brewer (’Censo hombres total ’) Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 14 / 19
  • 15. Representaciones en escalas discretas Podemos representar las comarcas de una isla: # canary . counties@data [ canary . counties@data $ CODISLA ==’GC ’,] idx <- canary.fort$id %in % canary. counties@data [canary. counties@data $CODISLA == "GC", "IDCOM27"] canary.fort2 <- canary.fort[idx , ] map <- ggplot(data = canary.fort2 , aes(long , lat , group = group , fill = censoH.discreto )) + geom_polygon () + geom_path(color = "white") map Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 15 / 19
  • 16. Representaciones con gr´aficos panel Podemos representar con ggplot: canary.fort <- merge(canary.fort , canary. counties@data [, c("IDCOM27", "IDPROV", "PROV", "CODISLA", "ISLA")], by.x = "id", by.y = "IDCOM27", sort = FALSE) idx <- canary.fort$id %in % canary. counties@data [canary. counties@data $PROV == "Santa Cruz de Tenerife", "IDCOM27"] canary.fort2 <- canary.fort[idx , ] map <- ggplot(data = canary.fort2 , aes(long , lat , group = group , fill = censoH.discreto )) + geom_polygon () + geom_path(color = "white") map + facet_grid(PROV ~ ISLA , scales = "free_x") Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 16 / 19
  • 17. Representaciones con ggplot2 Veamos algunas representaciones con ggplot2 canary.data <- canary. counties@data [canary. counties@data $PROV == "Santa Cruz de Tenerife", ] canary.plot <- ggplot(data = canary.data[canary.data$CODISLA == "LP", ], aes(x = CODCOM , y = censoH , group = 1)) + geom_line () + geom_point () canary.plot + facet_grid(PROV ~ ISLA) canary.plot <- ggplot(data = canary.data , aes(x = CODCOM , y = censoH , group = 1)) + geom_line () + geom_point () canary.plot + facet_grid(PROV ~ ISLA) canary.plot + facet_grid(PROV ~ ISLA , scales = "free_x") canary.plot <- ggplot(data = canary.data , aes(x = CODCOM , y = censoH , group = 1)) + geom_bar(colour = "black", fill = "#DD8888", stat = "identity") canary.plot + facet_grid(PROV ~ ISLA , scales = "free_x") canary.plot + facet_grid(PROV ~ ISLA , scales = "free_x", space = "free") Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 17 / 19
  • 18. Representaciones con ggplot2 source("arrange_ggplot2.txt") tenerife.data <- canary. counties@data [canary. counties@data $PROV == "Santa Cruz de Tenerife", ] canary.plot1 <- ggplot(data = tenerife.data , aes(x = CODCOM , y = censoH , group = 1)) + geom_line () + geom_point () + facet_grid(PROV ~ ISLA , scales = "free_x", space = "free") + xlab("Small areas (counties)") + ylab("Total") laspalmas.data <- canary. counties@data [canary. counties@data $PROV == "Las Palmas", ] canary.plot2 <- ggplot(data = laspalmas.data , aes(x = CODCOM , y = censoH , group = 1)) + geom_line () + geom_point () + facet_grid(PROV ~ ISLA , scales = "free_x", space = "free") + xlab("Small areas (counties)") + ylab("Total") arrange_ggplot2(canary.plot1 , canary.plot2 , ncol = 1) Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 18 / 19
  • 19. Representaciones con ggplot2 canary.plot1 <- ggplot(data = tenerife.data , aes(x = CODCOM , y = censoH , group = 1)) + geom_bar(colour = "black", fill = "#DD8888", stat = "identity") + facet_grid(PROV ~ ISLA , scales = "free_x", space = "free") + xlab("Small areas (counties)") + ylab("Total") canary.plot2 <- ggplot(data = laspalmas.data , aes(x = CODCOM , y = censoH , group = 1)) + geom_bar(colour = "black", fill = "#DD8888", stat = "identity") + facet_grid(PROV ~ ISLA , scales = "free_x", space = "free") + xlab("Small areas (counties)") + ylab("Total") arrange_ggplot2(canary.plot1 , canary.plot2 , ncol = 1) Carlos P´erez Glez. (Universidad de La Laguna) La librer´ıa maptools 19 / 19