Ir al contenido

En cada una de estas catas a ciegas de El Comidista (disponibles en su canal de YouTube) se presenta una serie de productos de marcas industriales a una o dos personas expertas en ese tipo de productos. En los vídeos en los que hay más de una persona puntuando los productos, el equipo de edición asigna al producto la media de las puntuaciones. La base de datos puntuaciones muestra las puntuaciones de cada persona del jurado de forma individual. Ver ?puntuaciones para más información sobre esta base de datos.

Primero cargamos los paquetes que necesitaremos:

library(comidistar) # contiene los datos y funciones ayudantes
library(dplyr) # para manejar los datos en formato tidy
library(ggplot2) # para visualizar los datos

Ahora cargamos los datos y los agregamos:

# cargamos los datos
data("puntuaciones") 

puntuaciones <- puntuaciones %>% 
  left_join(count(puntuaciones, producto)) %>%  # pegar numero de observaciones de cada producto
  mutate(producto_n = paste0(producto, " (n = ", n, ")")) %>% 
  select(producto_n, puntuacion) 

puntuaciones
#> # A tibble: 390 x 2
#>    producto_n              puntuacion
#>    <chr>                        <dbl>
#>  1 Yogur (n = 8)                    5
#>  2 Yogur (n = 8)                    5
#>  3 Yogur (n = 8)                    5
#>  4 Yogur (n = 8)                    6
#>  5 Yogur (n = 8)                    8
#>  6 Yogur (n = 8)                    5
#>  7 Yogur (n = 8)                    9
#>  8 Yogur (n = 8)                    6
#>  9 Salsa de tomate (n = 8)          6
#> 10 Salsa de tomate (n = 8)          7
#> # ... with 380 more rows

Por último, visualizamos los datos:



# distribución de cada producto
puntuaciones %>% 
  # si hay mas de dos puntuaciones con el mismo 
  # valor con el mismo producto, hacer mas grandes
  count(producto_n, puntuacion) %>% 
  ggplot() +
  aes(
    x = puntuacion,
    y = reorder(producto_n, puntuacion) # ordenar productos de mejor a peor
  ) + 
  # linea vertical de referencia en 5
  geom_vline(
    xintercept = 5, 
    colour = "grey", 
    size = 1
  ) +
  # puntuaciones individuales (cuantas mas puntuaciones iguales, mas grandes)
  geom_point(
    aes(size = n), 
    stroke = 0.5, # borde del circulo mas delgado
    colour = "orange"
  ) +
  # calcular media y error tipico de cada producto
  stat_summary(
    fun.data = "mean_se",
    # queremos un circulo en la media y una barra de error para el error tipico
    geom = "pointrange",
    size = 0.65,
    shape = 1,
    stroke = 1
  ) +
  labs(
    x = "Puntuaci\u00f3n", 
    y = "Producto", 
    colour = "Intervalo de confianza",
    title = "Puntuaci\u00f3n asignada a cada producto",
    subtitle = "Los c\u00EDrculos naranjas y barras de error indican la media y error t\u00EDpico"
  ) +
  # poner la leyenda en una sola linea (son dos por defecto)
  guides(size = guide_legend(nrow = 1)) +
  # poner limites al eje x
  scale_x_continuous(
    limits = c(-2.5, 10),
    breaks = seq(-3, 10, 1)
  ) +
  # personalizar tema de ggplot2 (?theme_comidistar)
  theme_comidistar() +
  theme(
    # poner titulo a la izquierda del plot
    plot.title.position = "plot",
    # eliminar titulo del eje Y
    axis.title.y = element_blank(),
    # eliminar rejilla del eje Y
    panel.grid.major.y = element_blank(),
    # rejilla del eje X punteada y de color gris
    panel.grid.major.x = element_line(
      colour = "grey",
      linetype = "dotted"
    ),
    # poner leyenda arriba
    legend.position = "top"
  )
Distribución de las puntuaciones de las catas a ciegas para cada producto. Distribución de las puntuaciones (eje X) de cada producto (eje Y). El punto y su intervalo (en negro) indican la media y el intervalos que contiene el 95\% de las puntuaciones de la distribución. Las líneas verticales dentro de cada distribuciu00f3n indican las puntuaciones individuales para cada marca, por parte de una de las personas del jurado.

Distribución de las puntuaciones de las catas a ciegas para cada producto. Distribución de las puntuaciones (eje X) de cada producto (eje Y). El punto y su intervalo (en negro) indican la media y el intervalos que contiene el 95% de las puntuaciones de la distribución. Las líneas verticales dentro de cada distribuciu00f3n indican las puntuaciones individuales para cada marca, por parte de una de las personas del jurado.