fbpx

Hola Mundo!

Cualquier parecido con el logo de Google Chorme es pura coincidencia! Cantidad de apps para principales categorías en play store y su puntuación en escala de azules.

Comenta una 🍍 en el tweet si te gusta esta gráfica!

El código para hacer la gráfica!

# Hecho por @GonzalezGouveia con gusto para
# Twitter #DatosDeMiercoles por @R4DS_es

# cargar librerias
library(tidyverse)
library(plotly)
library(htmlwidgets)
library(ggthemes)
library(ggrepel)

# leemos datos de apps directo del github de R4ds_es
apps <- read_csv("https://bit.ly/30UeGVl")

# modificamos los datos al gusto
apps_tidy <- apps %>% 
  filter(categoria %in% c('Juegos', 
                          'Herramientas',
                          'Familia'
                          )) %>% 
  mutate(puntos = factor(round(calificacion))) %>% 
  filter(!is.nan(calificacion)) %>% 
  group_by(categoria, puntos) %>% 
  summarise(n_count = n())

# esto es para uso en el calculo de porcentajes
sumatotal <- sum(apps_tidy$n_count)

# calculamos pocentaje para puntuaciones
apps_for_pie <- apps_tidy %>% 
  ungroup() %>% 
  arrange(desc(categoria)) %>% 
  mutate(prop = n_count/sumatotal,
         labypos = cumsum(prop) - 0.5*prop,
         n_sum_max = cumsum(n_count),
         n_sum_min = cumsum(n_count) - n_count)

# calculamos porcentajes para categorias
apps_for_ouside_pie <- apps_tidy %>% 
  group_by(categoria) %>% 
  summarise(n_count = sum(n_count)) %>% 
  ungroup() %>% 
  arrange(desc(categoria)) %>% 
  mutate(prop = n_count/sumatotal,
         labypos = cumsum(prop) - 0.5*prop,
         n_sum_max = cumsum(n_count),
         n_sum_min = cumsum(n_count) - n_count)

# empezamos la gráfica
apps_for_pie %>% 
  ggplot() +
  geom_rect(aes(fill = puntos,
                ymax = n_sum_max,
                ymin = n_sum_min,
                xmax = 2,
                xmin = 0),
            color = 'black') +
  scale_fill_manual(breaks = 1:5,
          # estos son los colores HEX de Google!
           values = c("#d8deeb", "#a7bfeb", "#78a2eb", "#4885ed", 
                      "#0058ed", "#3cba54", "#f4c20d", "#db3236")) +
  geom_rect(data = apps_for_ouside_pie,
    aes(fill = categoria,
                ymax = n_sum_max,
                ymin = n_sum_min,
                xmax = 5,
                xmin = 2.5),
            color = 'black') +
  geom_label(data = apps_for_ouside_pie,
             aes(x = 4,
                 y = (n_sum_max + n_sum_min)/2,
                 label = paste(categoria, '\n',
                               #round(prop*100),
                               round(n_count),
                               'apps')),
             color = "black",
             fill = 'white',
             size = rel(3)) +
  labs(title = 'Principales Categorias en play store') +
  xlim(c(0,6)) +
  coord_polar(theta="y") +
  theme_minimal() +
  theme(axis.title.x = element_blank(),
        axis.title.y = element_blank(),
        panel.border = element_blank(),
        panel.grid = element_blank(),
        axis.ticks = element_blank(),
        plot.title = element_text(size=14, face="bold"),
        plot.subtitle = element_text(size = 8),
        axis.text = element_blank()
        )

# guardamos la gráfica
ggsave('./images/google_apps_4_4.jpeg', 
       width = 4, 
       height = 4,
       units = 'in')