Truco R. Insertar imagen en un gráfico
Junio 22nd, 2010 | por rvaquerizo |Quería pintaros mi estimación sobre el mundial de Sudáfrica con R. La he hecho con el corazón más que con la cabeza. Es evidente que no será así. Esta estimación la pinto utilizando dos paquetes de R más que interesantes. El rimage no está en CRAN, es una cosa muy rara, un paquete "propietario" pero que tiene la función read.jpeg que permite crear objetos de imagen en R. El otro paquete interesante es el TeachingDemos que nos permite añadir imágenes a los gráficos de R, me acerqué a él cuando esta web tenía un logo, ahora ya no lo tiene. También me parece que puede ser de utilidad la función download.file
El caso es que a continuación os planteo un código de R que puede añadir mucha vistosidad a vuestros gráficos:
#Nos descargamos una imagen de la bandera de España
imagen = "http://www.google.es/images?q=tbn:6ZQixmSQWTr3-M::ohmycat.files.wordpress.com/2008/07/20071012130705-bandera-espana.jpg&h=94&w=141&usg=__CMSfd8xxAbtQrzMnRV7lFfDSdFY="
destino <- paste(tempfile(),'.jpg', sep='')
download.file(imagen, destino, mode="wb")
#Leemos jpeg con rimage
library(rimage)
esp <- read.jpeg(destino)
#Nos descargamos una imagen de la bandera de Argentina
imagen = "http://www.google.es/images?q=tbn:aBXCKunAyiSI2M::www.manuelbelgrano.gov.ar/img/bandera_bandera.jpg&h=94&w=150&usg=__pOnmgvNd7D0HU906KNiYGV59GW8="
destino <- paste(tempfile(),'.jpg', sep='')
download.file(imagen, destino, mode="wb")
#Leemos jpeg con rimage
arg <- read.jpeg(destino)
#Nos descargamos una imagen de la bandera de Mexico
imagen = "http://t1.gstatic.com/images?q=tbn:de-Fks--KqYUZM:http://cocn.tarifainfo.com/blogs/media/blogs/photo/bandera-mexico.jpg"
destino <- paste(tempfile(),'.jpg', sep='')
download.file(imagen, destino, mode="wb")
#Leemos jpeg con rimage
mexico <- read.jpeg(destino)
Nos hemos descargado 3 banderas y las hemos guardado como objetos de R. Ahora hemos de pintar un podium:
#Pintamos el podium
plot(c(1,1),c(1,2),type="l",xlim=c(0,5),ylim=c(0,5),
lwd=2,col="red",axes="F",xlab=" ",ylab=" ")
points(c(1,2),c(2,2),type="l",lwd=3,col="red")
points(c(2,2),c(2,3),type="l",lwd=3,col="red")
points(c(2,3),c(3,3),type="l",lwd=3,col="red")
points(c(3,3),c(2,3),type="l",lwd=3,col="red")
points(c(2,3),c(3,3),type="l",lwd=3,col="red")
points(c(3,4),c(2,2),type="l",lwd=3,col="red")
points(c(4,4),c(2,1),type="l",lwd=3,col="red")
Y ahora ponemos mi estimación:
#Le añadimos mi estimación...
library(TeachingDemos)
subplot(plot(esp),2.5,3.5)
subplot(plot(mexico),1.3,2.5)
subplot(plot(arg),3.7,2.5)
¿Imposible? Seguramente, pero todavía hay esperanza.
Saludos.
Etiquetas: rimage, TeachingDemos
2 Respuestas en “Truco R. Insertar imagen en un gráfico”
Por jaume, Jun 23, 2010 | Responder
¡Como mola!
Espero que se cumpla tu estimación.
Por cierto, para los que estamos más verdes, el paquete rimage se puede descargar de aquí:
http://cran.r-project.org/web/packages/rimage/index.html
Por que como tu dices en los mirror (España y Austria) no lo he encontrado.
Gracias por el blog.
Por Dani Fernandez, Jun 23, 2010 | Responder
Lo que no tiene de científico lo tiene de artístico, esta guay pero te falta dibujar ahí a la Sara Carbonero con el Casillas!
:)
un saludo!