Nuestro compañero de trabajo, Estatikoz,realizó el siguiente código para visualizar la información de gapminder
.
- Si bien la idea del gráfico es interesante, el objetivo de Estatikoz no era ver sólo la información del año 2000
- Tampóco le interesa sólo la información de Europa
- Por último, en gapminder también hay información sobre la esperanza de vida (
lifeExp
) que es relevante en el análisis.
library(tidyverse)
library(treemapify)
library(gapminder)
library(viridis)
gapminder <- gapminder_unfiltered
gapminder %>%
filter(year==2000, continent=='Europe') %>%
ggplot(., aes(area = pop, fill = gdpPercap, label = country)) +
geom_treemap() +
geom_treemap_text(fontface = "italic", colour = "white", place = "centre",
grow = TRUE)+
scale_fill_viridis(option = 'C')+
labs(title = 'Treemap Europe', subtitle = 'Año 2000',caption = 'Tamaño según población.')

El objetivo es transformar este código en una visualización Shiny que incorpore todos los elementos que faltan.
Hagamos una guía paso a paso

- Pensamos qué queremos mostrar ✅
- Escribimos código estático para un caso particular.✅
Pensamos qué partes queremos generalizar.✅
Armamos una función que tome como parámetros aquello que generalizamos
grafico_treemap <- function(){
}
- Armamos un shiny estático que nos muestre el resultado de la función con parámetros fijos
# El shiny mejor hacerlo en un archivo separado, que se llame app.r
- Agregamos los inputs en el ui
- reemplazamos los parámetros fijos por los de input en el server
- Agregamos texto y otros elementos ‘cosméticos’
- hint: A veces esta bueno pegar las cosas con \(glue\)
- hint: Qué pasa con el ancho y largo del gráfico? lo podemos mejorar?
- hint: Que tipo de widget nos conviene usar para el input de años? podemos mirar las opciones acá: inputs
LS0tCnRpdGxlOiBTaGlueSBhcHBzCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCmRhdGU6ICIiCnN1YnRpdGxlOiBQcsOhY3RpY2EgaW5kZXBlbmRpZW50ZQotLS0KCgpOdWVzdHJvIGNvbXBhw7Flcm8gZGUgdHJhYmFqbywgX0VzdGF0aWtvel8scmVhbGl6w7MgZWwgc2lndWllbnRlIGPDs2RpZ28gcGFyYSB2aXN1YWxpemFyIGxhIGluZm9ybWFjacOzbiBkZSBgZ2FwbWluZGVyYC4gCgotIFNpIGJpZW4gbGEgaWRlYSBkZWwgZ3LDoWZpY28gZXMgaW50ZXJlc2FudGUsIGVsIG9iamV0aXZvIGRlIF9Fc3RhdGlrb3pfIG5vIGVyYSB2ZXIgc8OzbG8gbGEgaW5mb3JtYWNpw7NuIGRlbCBhw7FvIDIwMDAKLSBUYW1ww7NjbyBsZSBpbnRlcmVzYSBzw7NsbyBsYSBpbmZvcm1hY2nDs24gZGUgRXVyb3BhCi0gUG9yIMO6bHRpbW8sIGVuIGdhcG1pbmRlciB0YW1iacOpbiBoYXkgaW5mb3JtYWNpw7NuIHNvYnJlIGxhIGVzcGVyYW56YSBkZSB2aWRhIChgbGlmZUV4cGApIHF1ZSBlcyByZWxldmFudGUgZW4gZWwgYW7DoWxpc2lzLiAKCgpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeSh0cmVlbWFwaWZ5KQpsaWJyYXJ5KGdhcG1pbmRlcikKbGlicmFyeSh2aXJpZGlzKQoKZ2FwbWluZGVyIDwtIGdhcG1pbmRlcl91bmZpbHRlcmVkCgpnYXBtaW5kZXIgJT4lIAogIGZpbHRlcih5ZWFyPT0yMDAwLCBjb250aW5lbnQ9PSdFdXJvcGUnKSAlPiUKICBnZ3Bsb3QoLiwgYWVzKGFyZWEgPSBwb3AsIGZpbGwgPSBnZHBQZXJjYXAsIGxhYmVsID0gY291bnRyeSkpICsKICBnZW9tX3RyZWVtYXAoKSArCiAgZ2VvbV90cmVlbWFwX3RleHQoZm9udGZhY2UgPSAiaXRhbGljIiwgY29sb3VyID0gIndoaXRlIiwgcGxhY2UgPSAiY2VudHJlIiwKICAgICAgICAgICAgICAgICAgICBncm93ID0gVFJVRSkrCiAgc2NhbGVfZmlsbF92aXJpZGlzKG9wdGlvbiA9ICdDJykrCiAgbGFicyh0aXRsZSA9ICdUcmVlbWFwIEV1cm9wZScsIHN1YnRpdGxlID0gJ0HDsW8gMjAwMCcsY2FwdGlvbiA9ICdUYW1hw7FvIHNlZ8O6biBwb2JsYWNpw7NuLicpCgpgYGAKCgpfX0VsIG9iamV0aXZvIGVzIHRyYW5zZm9ybWFyIGVzdGUgY8OzZGlnbyBlbiB1bmEgdmlzdWFsaXphY2nDs24gU2hpbnkgcXVlIGluY29ycG9yZSB0b2RvcyBsb3MgZWxlbWVudG9zIHF1ZSBmYWx0YW4uX18KCgo+IEhhZ2Ftb3MgdW5hIGd1w61hIHBhc28gYSBwYXNvIAoKIVtdKGltZy9tZW1lLmpwZyl7d2lkdGg9MzAwfQoKCjEuIFBlbnNhbW9zIHF1w6kgcXVlcmVtb3MgbW9zdHJhciBgciBlbW86OmppKCJjaGVjayIpYAoyLiBFc2NyaWJpbW9zIGPDs2RpZ28gX2VzdMOhdGljb18gcGFyYSB1biBjYXNvIHBhcnRpY3VsYXIuYHIgZW1vOjpqaSgiY2hlY2siKWAKMy4gUGVuc2Ftb3MgcXXDqSBwYXJ0ZXMgcXVlcmVtb3MgZ2VuZXJhbGl6YXIuYHIgZW1vOjpqaSgiY2hlY2siKWAKCjQuIEFybWFtb3MgdW5hIGZ1bmNpw7NuIHF1ZSB0b21lIGNvbW8gcGFyw6FtZXRyb3MgYXF1ZWxsbyBxdWUgZ2VuZXJhbGl6YW1vcwoKYGBge3J9CmdyYWZpY29fdHJlZW1hcCA8LSBmdW5jdGlvbigpewogIAp9CmBgYAoKCgo1LiBBcm1hbW9zIHVuIHNoaW55IGVzdMOhdGljbyBxdWUgbm9zIG11ZXN0cmUgZWwgcmVzdWx0YWRvIGRlIGxhIGZ1bmNpw7NuIGNvbiBwYXLDoW1ldHJvcyBmaWpvcwoKYGBge3J9CiMgRWwgc2hpbnkgbWVqb3IgaGFjZXJsbyBlbiB1biBhcmNoaXZvIHNlcGFyYWRvLCBxdWUgc2UgbGxhbWUgYXBwLnIKYGBgCgo2LiBBZ3JlZ2Ftb3MgbG9zIGlucHV0cyBlbiBlbCB1aQo3LiByZWVtcGxhemFtb3MgbG9zIHBhcsOhbWV0cm9zIGZpam9zIHBvciBsb3MgZGUgaW5wdXQgZW4gZWwgc2VydmVyCjguIEFncmVnYW1vcyB0ZXh0byB5IG90cm9zIGVsZW1lbnRvcyAnY29zbcOpdGljb3MnCgoKCi0gaGludDogQSB2ZWNlcyBlc3RhIGJ1ZW5vIHBlZ2FyIGxhcyBjb3NhcyBjb24gJGdsdWUkCi0gaGludDogUXXDqSBwYXNhIGNvbiBlbCBhbmNobyB5IGxhcmdvIGRlbCBncsOhZmljbz8gbG8gcG9kZW1vcyBtZWpvcmFyPwotIGhpbnQ6IFF1ZSB0aXBvIGRlIF93aWRnZXRfIG5vcyBjb252aWVuZSB1c2FyIHBhcmEgZWwgaW5wdXQgZGUgYcOxb3M/IHBvZGVtb3MgbWlyYXIgbGFzIG9wY2lvbmVzIGFjw6E6IFtpbnB1dHNdKGh0dHBzOi8vc2hpbnkucnN0dWRpby5jb20vdHV0b3JpYWwvd3JpdHRlbi10dXRvcmlhbC9sZXNzb24zLykKCg==