Archivo de la etiqueta: RColorBrewer

Mapas municipales de Argentina con R

Municipios Buenos Aires

En respuesta a un lector del blog he elaborado de forma rápida una nueva entrada que nos permite realizar mapas por municipalidades para Argentina, ya hay entradas similares pero está bien que este mapa tenga su propia entrada para facilitar las búsquedas. El ejemplo es rápido y es probable que el código tenga algún fallo o error, si es así lo comentáis y lo solvento. Como es habitual nos dirigimos a la web del proyecto Global Administrative Areas (http://www.gadm.org/country) y nos descargamos el mapa de Argentina por municipios que es el nivel 2, una vez descargado pocas líneas de R:

library(sp)
library(RColorBrewer)

ub_argentina="C:\\mapas\\ARG_adm2.rds"

argentina = readRDS(ub_argentina)
b.aires = argentina[argentina$NAME_1=="Buenos Aires",]

aleatorio = rpois(length(unique(b.aires$NAME_2)),3)
b.aires@data=data.frame(aleatorio)
spplot(b.aires,col.regions=brewer.pal(5, "Blues"))

Leemos el mapa entero y hacemos un subconjunto de datos sólo con los municipios de Buenos Aires, pintamos unos datos aleatorios con la función spplot y con la librería RColorBrewer podemos dar un formato más elegante a nuestro mapa. Saludos.

Trucos R. El paquete classInt para clasificar variables continuas

El paquete classInt de R últimamente está muy presente en mis programas y me gustaría dedicarle unas líneas para que podáis ver algunas de sus posibilidades a la hora de clasificar variables continuas, además estas posibilidades unidas con RColorBrewer nos permiten crear gráficos muy atractivos. Instalamos y clasificamos un vector de ejemplo:

aleatorio <- abs(rnorm(100,50,30))
summary(aleatorio)
grupos <- 4
clases <- classIntervals(aleatorio, grupos, style="quantile")
clases

style: quantile
one of 156,849 possible partitions of this variable into 4 classes
[1.225299,29.19317) [29.19317,51.55524) [51.55524,72.06471) [72.06471,118.6466]
25                 25                 25                 25

Partimos un vector aleatorio en 4 clases en función de sus cuantiles y creamos un lista clases que contiene nuestra tabla y entre sus atributos destaca brks que indica los puntos de corte, en el caso de los cuantiles tenemos:

clases$brks
quantile(aleatorio)

Coinciden el atributo brks (los cortes de nuestra clasificación) y los cuantiles de nuestro vector. Este paquete lo estoy empleando conjuntamente con RcolorBrewer para la realización de gráficos:

library(RColorBrewer)
paleta <- brewer.pal(grupos,"Reds")

colores = findColours(clases, paleta)
pie(attributes(colores)$table,
main="Ejemplo de classInt",col=colores)

Hay que pararse en el objeto colores que creamos con la función findColours Sigue leyendo Trucos R. El paquete classInt para clasificar variables continuas

Análisis del discurso de navidad del Rey de España 2013

Me llena de orgullo y satisfacción mostraros un ejemplo de uso de la librería wordcloud para la realización de nubes de palabras con R. Esta entrada no es muy innovadora porque ya tenemos alguna similar en el blog. Lo primero que tenéis que hacer es descargaros el discurso del Rey y ejecutad este código:

#Lectura del archivo
ubicacion="C:\\temp\\juancar.txt"
texto = read.table (ubicacion,sep="\r")

#Dejamos todas las palabras en mayúsculas
texto = toupper(texto$V1)
#El texto lo transformamos en una lista separada por espacios
texto_split = strsplit(texto, split=" ")

#Deshacemos esa lista y tenemos el data.frame
texto_col = as.character(unlist(texto_split))
texto_col = data.frame(texto_col)
names(texto_col) = c("V1")

#Eliminamos algunos caracteres regulares
texto_col$V1 = sub("([[:space:]])","",texto_col$V1)
texto_col$V1 = sub("([[:digit:]])","",texto_col$V1)
texto_col$V1 = sub("([[:punct:]])","",texto_col$V1)
#Creamos una variable longitud de la palabra
texto_col$largo = nchar(texto_col$V1)

#Quitamos palabras cortas
texto_col = subset(texto_col,largo>4)

#Nube de palabras
#install.packages('wordcloud')
library(wordcloud)
library(RColorBrewer)
pesos = data.frame(table(texto_col$V1))

#Paleta de colores
pal = brewer.pal(6,"RdYlGn")

#Realizamos el gráfico
png('C:\\temp\\Discurso del rey españa 2013.png', width=500, height=500)
wordcloud(pesos$Var1,pesos$Freq,scale=c(4,.2),min.freq=2,
max.words=Inf, random.order=FALSE,colors=pal,rot.per=.15)

dev.off()

Interesante el uso de la librería RColorBrewer. Particularmente me gusta mucho el resultado que nos da wordcloud para la realización de las nubes de palabras con una sintaxis sencilla. Considero imprescindible el uso de ramdom.order=FALSE. Espero que os sea de utilidad.

Quería aprovechar estas líneas para pedir al gabinete de prensa de la Casa del Rey que me permitieran fotografiarme con el Rey de España. Profesionalmente me viene muy bien (para determinados ámbitos) una fotografía estrechando la mano del Rey. Ya van unas pocas de veces que lo he pedido y siempre es imposible. Pero bien que estáis todo el día metidos en el blog cogiendo mapas y aprendiendo a usar mejor el Excel.

Trucos R. Gráficos de velocímetro con R

Hoy toca homenaje a 2 lectores del blog. Es la primera versión de un gráfico en forma de velocímetro con R. Cuando disponga de más tiempo modificaré la versión para darle mayor vistosidad. Como es habitual el truco nos servirá para trabajar con un interesante paquete de R como RColorBrewer. Un paquete que me descubrió un lector. El resultado final no es muy espectacular (de momento):

velocimetro_r.png

De momento la versión más sencilla. Veamos el código R que representa el semicírculo y posteriormente lo analizaremos. Me gustaría que también lo ejecutéis vosotros para comentarme posibles incidencias. Se genera el gráfico como PNG Sigue leyendo Trucos R. Gráficos de velocímetro con R