Res
En este post se presentarán diversas posibilidades para realizar pictogramas e infografías con R. Utilizaremos para ello la función e_chart( )
del paquete {echarts4r} e iconos de diversos orígenes.
Paquetes
Cargamos los paquetes requeridos:
library(tidyverse)
library(echarts4r)
library(highcharter)
Utilizar imágenes en un gráfico
Una posibilidad a la hora de utilizar imágenes en nuestros gráficos es utilizar alguna imagen para representar las variables de interés y cambiar su tamaño en función de un valor detarminado. Pongamos, por ejemplo, que queremos visualizar el porcentaje de lanzamientos espaciales en 2015 por país, siguiendo la información recogida en el siguiente enlace. Para ello podemos seleccionar un imagen que nos parezca apropiada, pongamos por ejemplo un cohete, realizar un dataframe para su posterior representación gráfica y, finalmente, realizar el gráfico con la función e_charts()
del paquete {echarts4r}.
# Seleccionamos la imagen
cohete <- "https://image.spreadshirtmedia.net/image-server/v1/mp/compositions/T1188A70MPA2649PT10X15Y37D148622428FS2502/views/1,width=550,height=550,appearanceId=70,backgroundColor=FFFFFF,noPt=true,version=1550539062/cohete-de-dibujos-animados-funda-para-iphone-7-8.jpg"
# Realizamos el dataframe (seleccionamos solo 6 países):
cohete_plot <- data.frame(
x = c("Rusia", "EE.UU","China", "EU", "India", "Japón"),
valor = c(33, 23, 22, 10, 6, 5),
imagen = c(paste0("image://", cohete),
paste0("image://", cohete),
paste0("image://", cohete),
paste0("image://", cohete),
paste0("image://", cohete),
paste0("image://", cohete))
)
# Realizamos el gráfico:
cohete_plot %>%
e_charts(x) %>%
e_pictorial(valor,
imagen) %>%
e_theme("westeros") %>%
e_legend(F) %>%
e_title("Lanzamientos espaciales en 2015", left='center') %>%
e_labels(show=TRUE) %>%
e_x_axis(splitLine=list(show = T)) %>%
e_y_axis(show= T,
min=0, max= 35,
interval= 5,
splitLine=list(show = T))
Podemos guardar la imagen como archivo .png
y subirlo al documento utilizando los paquetes {png} y {grid}.
library(png)
library(grid)
img_cohete <- readPNG("C:\\Users\\Usuario\\Desktop\\r_que_r\\r_que_r\\content\\datasets\\cohetes.png")
grid.raster(img_cohete)
Podemos también utilizar una imagen distinta para cada una de las variables de nuestro gráfico. Pongamos, por ejemplo, que queremos representar los principales personajes de Los Simpsons otorgándole a cada uno un valor predeterminado. Para ello podemos seleccionar las imagenes para cada uno de ellos, crear el dataset pertinente (asignamos un valor aleatorio a cada uno de los personajes) y realizar el gráfico de forma similar al realizado previamente.
# seleccionamos las imagenes:
homer <- "https://upload.wikimedia.org/wikipedia/en/0/02/Homer_Simpson_2006.png"
marge <- "https://upload.wikimedia.org/wikipedia/en/0/0b/Marge_Simpson.png"
bart <-"https://i.pinimg.com/originals/78/fa/13/78fa132a644b0f3ebb2c41616542d83f.png"
lisa <- "https://upload.wikimedia.org/wikipedia/en/thumb/e/ec/Lisa_Simpson.png/220px-Lisa_Simpson.png"
maggie <- "https://upload.wikimedia.org/wikipedia/en/9/9d/Maggie_Simpson.png"
# Creamos el dataframe:
simpsons <- data.frame(
x = c("Homer", "Marge","Bart", "Lisa", "Maggie"),
valor = c(7,9,5,5,4),
imagen = c(paste0("image://", homer),
paste0("image://", marge),
paste0("image://", bart),
paste0("image://", lisa),
paste0("image://", maggie))
)
# Realizamos el gráfico:
simpsons %>%
e_charts(x) %>%
e_pictorial(valor, imagen) %>%
e_theme("westeros") %>%
e_legend(F) %>%
e_title("Los Simpsons", left='center') %>%
e_labels(show=TRUE) %>%
e_x_axis(splitLine=list(show = F)) %>%
e_y_axis(show=F, min=0, max=10,
splitLine=list(show = F))
Pongamos el valor más alto a Marge, que sin duda se lo merece.
Incluir iconos en un gráfico
Puede que nos interese incluir algún icono en nuestros gráficos para hacerlos más agradables e informales. En este caso podemos hacer uso de iconos existentes en Windows, utilizar páginas como iconmonstr o fontAwesome, donde podemos encontrar una gran variedad de iconos, o descargar algún paquete desde donde seleccionar iconos. Por ejemplo, el paquete {echarts4r.assets} contiene 77 iconos que podemos utilizar en nuestros gráficos.
library(echarts4r.assets)
# las primeras observaciones del dataframe:
head(echarts4r.assets::icons)
## # A tibble: 6 x 2
## path name
## <chr> <chr>
## 1 "M18.8,85.1c-7.8-7.8-7.8-20.5,0-28.3l44.3-43.8c5.5-5.5,14.3-5.5,19.~ attachme~
## 2 "M86,12H68c-1.1,0-2,0.9-2,2v33.8H52V34c0-1.1-0.9-2-2-2H32c-1.1,0-2,~ bar_graph
## 3 "M43.3,39.6c-0.6,2.5-3.7,1.1-2.4,1.4L21.2,36c-1.1-0.3-1.7-1.4-1.4-2~ book
## 4 "M69,15H31c-1.1,0-2,0.9-2,2v66c0,1.8,2.1,2.7,3.4,1.4L50,66.8l17.6,1~ bookmark
## 5 "M86,28H60v-6c0-1.1-0.9-2-2-2H42c-1.1,0-2,0.9-2,2v6H14c-1.1,0-2,0.9~ briefcase
## 6 "M88,20H12c-1.1,0-2,0.9-2,2v56c0,1.1,0.9,2,2,2h76c1.1,0,2-0.9,2-2V2~ browser
# El nombre de los iconos incluidos en el dataset:
unique(echarts4r.assets::icons$name)
## [1] "attachment" "bar_graph" "book" "bookmark"
## [5] "briefcase" "browser" "calendar" "camera"
## [9] "cancel" "clock" "comment_lines" "comment"
## [13] "computer" "controls" "conversation" "create_new"
## [17] "credit_card" "crosshair" "diary" "document"
## [21] "down_arrow" "email" "folder" "forward"
## [25] "heart" "home" "inbox" "layers"
## [29] "left_arrow" "link" "list" "location_marker"
## [33] "location" "map" "medal" "menu"
## [37] "microphone" "minus" "more_details_(3)" "more_details_(4)"
## [41] "music" "no_volume" "notification" "padlock"
## [45] "phone" "photo" "pie_chart" "pin"
## [49] "plus" "printer" "profile" "rearrange"
## [53] "refresh" "reply" "right_arrow" "save"
## [57] "search" "settings" "share" "shopping"
## [61] "signal" "signals" "star" "tablet"
## [65] "tag" "tick" "toggle" "trash"
## [69] "typing_comment" "up_arrow" "user" "users"
## [73] "video_camera" "video" "view" "volume"
## [77] "warning"
A modo de ejemplo, creamos un dataset que muestre la evolución del número de muertes por infarto agudo de miocardio en España según datos del INE utilizando el icono del corazón presente en el dataset anterior.
muerte <- data.frame(
x = as_factor(c(2006:2017)),
y = c(22028, 21594, 20433, 19437, 18684, 18101, 17644, 16536, 15893, 15932, 14908, 14956)
)
muerte %>%
e_charts(x) %>%
e_pictorial(y, symbol = ea_icons("heart"),
symbolRepeat = T, z= -1,
symbolSize = c(15,15)) %>%
e_theme("dark") %>%
e_title("Muertes por infarto agudo de miocardio en España (2006-2017)", left='center') %>%
e_color(color = 'red') %>%
e_legend(show = FALSE) %>%
e_x_axis(splitLine=list(show = F)) %>%
e_y_axis(splitLine=list(show = F)) %>%
e_labels(fontSize = 12, color = "white")
Pongamos ahora que queremos realizar un gráfico que, utilizando los datos de una encuesta realizada por la OCU, indique el uso de la bicicleta en cada ciudad española donde se ha realizado el estudio. Para ello seleccionaremos un icono de una bicleta obtenido en iconmonstr y haremos el gráfico de forma similar al realizado previamente.
# Ruta del icono:
bici_icon <- "path://M12 23c-6.071 0-11-4.929-11-11s4.929-11 11-11 11 4.929 11 11-4.929 11-11 11zm0-23c-6.623 0-12 5.377-12 12s5.377 12 12 12 12-5.377 12-12-5.377-12-12-12zm-1.379 12.996c-.125-1.063-.704-2.004-1.599-2.601l.488-.962 1.639 3.563h-.528zm-3.621 3.215c-1.534 0-2.782-1.248-2.782-2.782s1.248-2.783 2.782-2.783c.292 0 .581.046.857.135l-.944 1.863c-.397.043-.703.38-.703.785 0 .435.355.789.79.789.266 0 .515-.136.661-.357h2.088c-.21 1.346-1.377 2.35-2.749 2.35zm.704-3.215l.924-1.824c.602.437 1.006 1.094 1.121 1.824h-2.045zm6.559-3.778l-2.426 3.206-1.478-3.206h3.904zm2.737 6.993c-1.534 0-2.782-1.248-2.782-2.782 0-.969.509-1.871 1.334-2.376l.797 1.93c-.09.132-.138.285-.138.446 0 .435.354.789.789.789.435 0 .789-.354.789-.789 0-.38-.272-.706-.641-.776l-.796-1.93c.21-.051.428-.077.648-.077 1.534 0 2.782 1.249 2.782 2.783 0 1.534-1.248 2.782-2.782 2.782zm0-6.429c-.333 0-.663.045-.98.134l-1.232-2.991h-1.717c-.242 0-.432.2-.432.432 0 .238.194.433.432.433h1.133l.237.564h-4.469l-.266-.564h.145c.243 0 .432-.198.432-.433 0-.239-.193-.432-.432-.432h-1.78c-.115 0-.224.045-.305.126-.082.082-.127.191-.127.306 0 .238.194.433.432.433h.683l.294.641-.797 1.572c-.399-.147-.82-.221-1.251-.221-2.011 0-3.646 1.636-3.646 3.647 0 2.01 1.635 3.646 3.646 3.646 1.86 0 3.405-1.377 3.621-3.214h1.216l3.15-4.174.232.56c-1.153.647-1.865 1.859-1.865 3.182 0 2.01 1.635 3.646 3.646 3.646s3.646-1.636 3.646-3.646c0-2.011-1.635-3.647-3.646-3.647z"
# Creamos el dataframe:
bici<- data.frame(
x = c("Valencia", "Vitoria", "Zaragoza", "P. Mallorca", "Sevilla", "Córdoba", "Murcia", "Albacete", "Pamplona", "Málaga", "Castellón", "Donosti", "Barcelona", "Las Palmas", "Madrid", "Bilbao"),
y = c("47", "46", "45", "37", "35", "35", "33", "31", "30", "28", "25", "25", "24", "23", "19", "17")
)
bici %>%
e_charts(x) %>%
e_pictorial(y, symbol = bici_icon,
symbolRepeat = T,
symbolSize = c(20,20))%>%
e_theme("dark") %>%
e_title("Uso de la bici una vez a la semana o más (%)", left='center') %>%
e_color(color = 'white') %>%
e_flip_coords() %>%
e_legend(show = FALSE) %>%
e_x_axis(splitLine=list(show = F)) %>%
e_y_axis(splitLine=list(show = T)) %>%
e_labels(fontSize = 15,
fontWeight ='bold',
position = "right",
offset=c(5, 0),
color= "orange")
En el caso de necesitar un icono diferente para cada variable podemos realizar una pequeña modificación al código previo. Pongamos por ejemplo que queremos representar en un gráfico el porcentaje de usuarios de internet que afirman usar diversas plataformas o redes sociales. Los datos los obtenemos de un informe de la agencia We Are Social donde se analizan tendencias digitales y de redes sociales en todo el mundo. Para ello formularemos el siguiente código:
# realizamos el dataframe:
redes = data.frame(redes = c("YouTube", "WhatsApp", "Facebook", "Instagram", "Twitter","Fb Messenger","LinkedIn" ),
valor=c(89, 87, 82, 54, 49, 43, 31),
path = c("path://M9.279 13.52h-.939v5.027h-.908v-5.027h-.9v-.854h2.788v.854zm5.395 1.721v2.406c0 .537-.2.954-.736.954-.296 0-.541-.108-.767-.388v.333h-.813v-5.88h.813v1.893c.183-.222.429-.405.718-.405.59 0 .785.499.785 1.087zm-.83.049c0-.146-.027-.257-.086-.333-.098-.129-.279-.143-.42-.071l-.167.132v2.703l.19.153c.132.066.324.071.413-.045.046-.061.069-.161.069-.299v-2.24zm-2.347-5.859c.229 0 .354-.183.354-.431v-2.119c0-.255-.111-.434-.371-.434-.237 0-.353.185-.353.434v2.119c.001.24.137.431.37.431zm-.733 8.07c-.099.123-.317.325-.475.325-.172 0-.215-.118-.215-.292v-3.325h-.805v3.626c0 .88.597.885 1.031.636.16-.092.315-.227.464-.403v.479h.807v-4.338h-.807v3.292zm13.236-12.501v14c0 2.761-2.238 5-5 5h-14c-2.761 0-5-2.239-5-5v-14c0-2.761 2.239-5 5-5h14c2.762 0 5 2.239 5 5zm-10.566 4.427c0 .45.137.813.592.813.256 0 .611-.133.979-.569v.503h.847v-4.554h-.847v3.457c-.104.129-.333.341-.498.341-.182 0-.226-.124-.226-.307v-3.491h-.847v3.807zm-3.177-2.621v2.233c0 .803.419 1.22 1.24 1.22.682 0 1.218-.456 1.218-1.22v-2.233c0-.713-.531-1.224-1.218-1.224-.745 0-1.24.493-1.24 1.224zm-3.155-2.806l1.135 3.67v2.504h.953v-2.504l1.11-3.67h-.969l-.611 2.468-.658-2.468h-.96zm11.564 11.667c-.014-2.978-.232-4.116-2.111-4.245-1.734-.118-7.377-.118-9.109 0-1.876.128-2.098 1.262-2.111 4.245.014 2.978.233 4.117 2.111 4.245 1.732.118 7.375.118 9.109 0 1.877-.129 2.097-1.262 2.111-4.245zm-1.011-.292v1.104h-1.542v.818c0 .325.027.607.352.607.34 0 .36-.229.36-.607v-.301h.83v.326c0 .836-.358 1.342-1.208 1.342-.771 0-1.164-.561-1.164-1.342v-1.947c0-.753.497-1.275 1.225-1.275.773-.001 1.147.491 1.147 1.275zm-.83-.008c0-.293-.062-.508-.353-.508-.299 0-.359.21-.359.508v.439h.712v-.439z",
"path://M.057 24l1.687-6.163c-1.041-1.804-1.588-3.849-1.587-5.946.003-6.556 5.338-11.891 11.893-11.891 3.181.001 6.167 1.24 8.413 3.488 2.245 2.248 3.481 5.236 3.48 8.414-.003 6.557-5.338 11.892-11.893 11.892-1.99-.001-3.951-.5-5.688-1.448l-6.305 1.654zm6.597-3.807c1.676.995 3.276 1.591 5.392 1.592 5.448 0 9.886-4.434 9.889-9.885.002-5.462-4.415-9.89-9.881-9.892-5.452 0-9.887 4.434-9.889 9.884-.001 2.225.651 3.891 1.746 5.634l-.999 3.648 3.742-.981zm11.387-5.464c-.074-.124-.272-.198-.57-.347-.297-.149-1.758-.868-2.031-.967-.272-.099-.47-.149-.669.149-.198.297-.768.967-.941 1.165-.173.198-.347.223-.644.074-.297-.149-1.255-.462-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.297-.347.446-.521.151-.172.2-.296.3-.495.099-.198.05-.372-.025-.521-.075-.148-.669-1.611-.916-2.206-.242-.579-.487-.501-.669-.51l-.57-.01c-.198 0-.52.074-.792.372s-1.04 1.016-1.04 2.479 1.065 2.876 1.213 3.074c.149.198 2.095 3.2 5.076 4.487.709.306 1.263.489 1.694.626.712.226 1.36.194 1.872.118.571-.085 1.758-.719 2.006-1.413.248-.695.248-1.29.173-1.414z",
"path://M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-3 7h-1.924c-.615 0-1.076.252-1.076.889v1.111h3l-.238 3h-2.762v8h-3v-8h-2v-3h2v-1.923c0-2.022 1.064-3.077 3.461-3.077h2.539v3z",
"path://M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z",
"path://M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-.139 9.237c.209 4.617-3.234 9.765-9.33 9.765-1.854 0-3.579-.543-5.032-1.475 1.742.205 3.48-.278 4.86-1.359-1.437-.027-2.649-.976-3.066-2.28.515.098 1.021.069 1.482-.056-1.579-.317-2.668-1.739-2.633-3.26.442.246.949.394 1.486.411-1.461-.977-1.875-2.907-1.016-4.383 1.619 1.986 4.038 3.293 6.766 3.43-.479-2.053 1.08-4.03 3.199-4.03.943 0 1.797.398 2.395 1.037.748-.147 1.451-.42 2.086-.796-.246.767-.766 1.41-1.443 1.816.664-.08 1.297-.256 1.885-.517-.439.656-.996 1.234-1.639 1.697z",
"path://M19 24h-14c-2.761 0-5-2.239-5-5v-14c0-2.761 2.239-5 5-5h14c2.762 0 5 2.239 5 5v14c0 2.761-2.238 5-5 5zm-7-19.5c-4.418 0-8 3.316-8 7.407 0 2.332 1.163 4.411 2.981 5.769v2.824l2.724-1.495c.727.201 1.497.31 2.295.31 4.418 0 8-3.317 8-7.408s-3.582-7.407-8-7.407zm.795 9.975l-2.037-2.173-3.975 2.173 4.372-4.642 2.087 2.173 3.926-2.173-4.373 4.642z",
"path://M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-11 19h-3v-11h3v11zm-1.5-12.268c-.966 0-1.75-.79-1.75-1.764s.784-1.764 1.75-1.764 1.75.79 1.75 1.764-.783 1.764-1.75 1.764zm13.5 12.268h-3v-5.604c0-3.368-4-3.113-4 0v5.604h-3v-11h3v1.765c1.396-2.586 7-2.777 7 2.476v6.759z"
))
# Realizamos el gráfico:
redes %>%
e_charts(redes) %>%
e_pictorial(valor, symbol = path,
symbolRepeat = T,
symbolSize = c(40, 40)) %>%
e_theme("shine") %>%
e_title("Redes sociales más activas \nPorcentaje de Usuarios de internet que afirman usar cada plataforma", left='center') %>%
e_color(color = "gray26") %>%
e_flip_coords() %>%
e_legend(show = F) %>%
e_x_axis(splitLine=list(show = F)) %>%
e_y_axis(splitLine=list(show = T)) %>%
e_labels(fontSize = 16,
fontWeight ='bold',
position = "right",
offset=c(10, 0),
color= "red")
De forma alternativa podemos también descargar iconos de Fontawesome mediante el paquete {extrafont}. Para ello debemos cargar dicho paquete e instalar fontawesome a través del siguiente enlace.
Realizar infografías con e_charts()
Otra posibilidad es crear infografías utilizando iconos. Por ejemplo pongamos que queremos representar en un gráfico la producción de cerveza en España en 2017. Para ello utilizaremos un icono adecuado seleccionado de iconmonstr. en nuestro caso una jarra de cerveza, con el procederemos a construir nuestro dataset.
En esta ocasión los datos utilizados para el gráfico los obtenemos de Cerveceros de España aunque seleccionamos únicamente los cuatro mayores productores de cerveza en 2017.
# Construimos el dataframe:
bebida = data.frame(bebida=c("Mahou- \nSan Miguel", "Heineken \nEspaña", "Damm", "Hijos de \nRivera"),
valor=c(12.3, 10.5, 9.7, 2.8),
path = c("path://M17 21.224v-12.772c1.106-.594 1.674-1.762 1.674-3.104 0-1.874-1.473-3.411-3.32-3.515-.768-1.068-2.221-1.833-3.739-1.833-.971 0-1.78.322-2.582.964-1.292-.422-2.747-.143-3.795.792-2.155-.342-4.238 1.244-4.238 3.501 0 1.396.819 2.581 2 3.15v12.817c0 .664-.336 1.203-1 1.203v1.573h16v-1.573c-.664 0-1-.539-1-1.203zm-9-.224h-2v-12.719c.672.422 1.516.406 2 .267v12.452zm7.154-13.707c-.627 0-1.184-.296-1.539-.756l-.451.316c-1.522 1.178-.113 3.303-.01 4.324.102.977-.505 1.712-1.458 1.712-.93 0-1.475-.786-1.401-1.712.078-.978 1.562-2.918-.083-4.438l-.623-.568c-.425.497-1.056.813-1.761.813-.605 0-1.155-.231-1.568-.611-.354.487-.927.804-1.575.804-2.716 0-2.817-3.889 0-3.889.398 0 .77.12 1.077.326.384-.751 1.163-1.266 2.065-1.266.591 0 1.131.222 1.54.586.494-.814 1.39-1.359 2.412-1.359 1.255 0 2.32.82 2.685 1.955.213-.082.445-.126.689-.126 1.072 0 1.943.871 1.943 1.944s-.869 1.945-1.942 1.945zm7.846 5.159c0 2.539-1.791 5.75-5 6.963v-2.16c3.154-1.83 3.969-6.255 1.553-6.255h-1.553v-2h1.912c2.144 0 3.088 1.534 3.088 3.452z",
"path://M17 21.224v-12.772c1.106-.594 1.674-1.762 1.674-3.104 0-1.874-1.473-3.411-3.32-3.515-.768-1.068-2.221-1.833-3.739-1.833-.971 0-1.78.322-2.582.964-1.292-.422-2.747-.143-3.795.792-2.155-.342-4.238 1.244-4.238 3.501 0 1.396.819 2.581 2 3.15v12.817c0 .664-.336 1.203-1 1.203v1.573h16v-1.573c-.664 0-1-.539-1-1.203zm-9-.224h-2v-12.719c.672.422 1.516.406 2 .267v12.452zm7.154-13.707c-.627 0-1.184-.296-1.539-.756l-.451.316c-1.522 1.178-.113 3.303-.01 4.324.102.977-.505 1.712-1.458 1.712-.93 0-1.475-.786-1.401-1.712.078-.978 1.562-2.918-.083-4.438l-.623-.568c-.425.497-1.056.813-1.761.813-.605 0-1.155-.231-1.568-.611-.354.487-.927.804-1.575.804-2.716 0-2.817-3.889 0-3.889.398 0 .77.12 1.077.326.384-.751 1.163-1.266 2.065-1.266.591 0 1.131.222 1.54.586.494-.814 1.39-1.359 2.412-1.359 1.255 0 2.32.82 2.685 1.955.213-.082.445-.126.689-.126 1.072 0 1.943.871 1.943 1.944s-.869 1.945-1.942 1.945zm7.846 5.159c0 2.539-1.791 5.75-5 6.963v-2.16c3.154-1.83 3.969-6.255 1.553-6.255h-1.553v-2h1.912c2.144 0 3.088 1.534 3.088 3.452z",
"path://M17 21.224v-12.772c1.106-.594 1.674-1.762 1.674-3.104 0-1.874-1.473-3.411-3.32-3.515-.768-1.068-2.221-1.833-3.739-1.833-.971 0-1.78.322-2.582.964-1.292-.422-2.747-.143-3.795.792-2.155-.342-4.238 1.244-4.238 3.501 0 1.396.819 2.581 2 3.15v12.817c0 .664-.336 1.203-1 1.203v1.573h16v-1.573c-.664 0-1-.539-1-1.203zm-9-.224h-2v-12.719c.672.422 1.516.406 2 .267v12.452zm7.154-13.707c-.627 0-1.184-.296-1.539-.756l-.451.316c-1.522 1.178-.113 3.303-.01 4.324.102.977-.505 1.712-1.458 1.712-.93 0-1.475-.786-1.401-1.712.078-.978 1.562-2.918-.083-4.438l-.623-.568c-.425.497-1.056.813-1.761.813-.605 0-1.155-.231-1.568-.611-.354.487-.927.804-1.575.804-2.716 0-2.817-3.889 0-3.889.398 0 .77.12 1.077.326.384-.751 1.163-1.266 2.065-1.266.591 0 1.131.222 1.54.586.494-.814 1.39-1.359 2.412-1.359 1.255 0 2.32.82 2.685 1.955.213-.082.445-.126.689-.126 1.072 0 1.943.871 1.943 1.944s-.869 1.945-1.942 1.945zm7.846 5.159c0 2.539-1.791 5.75-5 6.963v-2.16c3.154-1.83 3.969-6.255 1.553-6.255h-1.553v-2h1.912c2.144 0 3.088 1.534 3.088 3.452z",
"path://M17 21.224v-12.772c1.106-.594 1.674-1.762 1.674-3.104 0-1.874-1.473-3.411-3.32-3.515-.768-1.068-2.221-1.833-3.739-1.833-.971 0-1.78.322-2.582.964-1.292-.422-2.747-.143-3.795.792-2.155-.342-4.238 1.244-4.238 3.501 0 1.396.819 2.581 2 3.15v12.817c0 .664-.336 1.203-1 1.203v1.573h16v-1.573c-.664 0-1-.539-1-1.203zm-9-.224h-2v-12.719c.672.422 1.516.406 2 .267v12.452zm7.154-13.707c-.627 0-1.184-.296-1.539-.756l-.451.316c-1.522 1.178-.113 3.303-.01 4.324.102.977-.505 1.712-1.458 1.712-.93 0-1.475-.786-1.401-1.712.078-.978 1.562-2.918-.083-4.438l-.623-.568c-.425.497-1.056.813-1.761.813-.605 0-1.155-.231-1.568-.611-.354.487-.927.804-1.575.804-2.716 0-2.817-3.889 0-3.889.398 0 .77.12 1.077.326.384-.751 1.163-1.266 2.065-1.266.591 0 1.131.222 1.54.586.494-.814 1.39-1.359 2.412-1.359 1.255 0 2.32.82 2.685 1.955.213-.082.445-.126.689-.126 1.072 0 1.943.871 1.943 1.944s-.869 1.945-1.942 1.945zm7.846 5.159c0 2.539-1.791 5.75-5 6.963v-2.16c3.154-1.83 3.969-6.255 1.553-6.255h-1.553v-2h1.912c2.144 0 3.088 1.534 3.088 3.452z")
)
bebida %>%
e_charts(bebida) %>%
e_x_axis(splitLine=list(show = FALSE),
axisTick=list(show=FALSE),
axisLine=list(show=FALSE),
axisLabel= list(show=FALSE)) %>%
e_y_axis(max = 17,
splitLine=list(show = FALSE),
axisTick=list(show=FALSE),
axisLine=list(show=FALSE),
axisLabel=list(show=FALSE)) %>%
e_color(color = c('orange','snow')) %>%
e_pictorial(valor,
symbol = path,
z = 50,
name = 'realValue',
symbolBoundingData = 15,
symbolClip = T) %>%
e_pictorial(valor,
symbol = path,
name = 'background',
symbolBoundingData = 15) %>%
e_labels(position = "bottom", offset= c(0, 10),
textStyle =list(fontSize= 12,
fontFamily= 'Arial',
fontWeight ='bold',
color= 'orange'),
formatter="{@[1]}hL \n{@[0]}") %>%
e_legend(show = FALSE) %>%
e_theme("dark") %>%
e_title("Producción de cerveza en España en 2017 \nEn millones de hectolitros", left = "center")
El gráfico muestra la fuerte concentración existente en términos de producción cervecera en España. Como muestra el gráfico el principal productor en 2017 fue Mahou-San Miguel (Mahou, San Miguel, Cervezas Alhambra), seguido por Heineken España (Cruzcampo, Amstel, Heineken), Damm (Estrella Damm, Estrella Levante, EStrella del Sur, Keler entre otras) e Hijos de Rivera (Estrella Galicia).
Pongamos ahora que nos interesa de nuevo reflejar en una infograma cierta información sobre las redes sociales más activas en España utilizando de nuevo la información del informe de la agencia We Are Social. En esta línea podemos, por ejemplo, comparar el uso de Facebook con el de Instagram. Para ello utilizamos los iconos de estas dos redes sociales, realizamos el dataset y graficamos el plot utilizando la función e_charts()
.
# Dataframe:
redes = data.frame(redes = c("Facebook", "Instagram"),
value=c(82, 54),
path = c('path://M19 0h-14c-2.761 0-5 2.239-5 5v14c0 2.761 2.239 5 5 5h14c2.762 0 5-2.239 5-5v-14c0-2.761-2.238-5-5-5zm-3 7h-1.924c-.615 0-1.076.252-1.076.889v1.111h3l-.238 3h-2.762v8h-3v-8h-2v-3h2v-1.923c0-2.022 1.064-3.077 3.461-3.077h2.539v3z"/></svg>',
'path://M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838c-3.403 0-6.162 2.759-6.162 6.162s2.759 6.163 6.162 6.163 6.162-2.759 6.162-6.163c0-3.403-2.759-6.162-6.162-6.162zm0 10.162c-2.209 0-4-1.79-4-4 0-2.209 1.791-4 4-4s4 1.791 4 4c0 2.21-1.791 4-4 4zm6.406-11.845c-.796 0-1.441.645-1.441 1.44s.645 1.44 1.441 1.44c.795 0 1.439-.645 1.439-1.44s-.644-1.44-1.439-1.44z"/></svg>'))
# gráfico:
redes %>%
e_charts(redes) %>%
e_x_axis(splitLine=list(show = FALSE),
axisTick=list(show=FALSE),
axisLine=list(show=FALSE),
axisLabel= list(show=FALSE)) %>%
e_y_axis(max=120,
splitLine=list(show = FALSE),
axisTick=list(show=FALSE),
axisLine=list(show=FALSE),
axisLabel=list(show=FALSE)) %>%
e_color(color = c('lawngreen','snow')) %>%
e_pictorial(value,
symbol = path,
z=10,
name= 'realValue',
symbolBoundingData= 100,
symbolClip= TRUE) %>%
e_pictorial(value,
symbol = path,
name= 'background',
symbolBoundingData= 100) %>%
e_labels(position = "bottom", offset= c(0, 10),
textStyle =list(fontSize= 20,
fontFamily= 'Arial',
fontWeight ='bold',
color= 'lawngreen'),
formatter="{@[1]}% {@[0]}") %>%
e_legend(show = FALSE) %>%
e_theme("dark") %>%
e_title("Redes sociales más activas \nPorcentaje de Usuarios de internet que afirman usar Facebook e Instagram", left = "center")
Al igual que realizamos previamente podemos cargar un archivo .png que tengamos almacenado en nuestro ordenador de la siguiente forma. En este caso subimos una infografía realizada previamente donde incluimos las cinco redes sociales más utilizadas según dicho estudio.
library(png)
library(grid)
img_redes <- readPNG("C:\\Users\\Usuario\\Desktop\\r_que_r\\r_que_r\\content\\datasets\\redes.png")
grid.raster(img_redes)