Datos obtenidos de Metacritic

Obtengo el link de la página donde se encuentran los mejores juegos de PlayStation 5 durante 2021

metacritic <- GET("https://www.metacritic.com/browse/games/score/metascore/year/ps5/filtered?view=condensed&sort=desc&year_selected=2021")

Extraigo los nombres de los juegos

metacritic_titles <- content(metacritic) %>%
  html_nodes(xpath = "//a//h3" ) %>%
  html_text()

Extraigo las puntuaciones que dieron los usuarios a esos juegos

metacritic_user_score <- content(metacritic) %>%
  html_nodes(xpath = "//*//div[@class = 'metascore_w user large game positive' or @class = 'metascore_w user large game mixed' or @class = 'metascore_w user large game negative' or @class = 'metascore_w user large game tbd']") %>%
  html_text()

Las puntuaciones que dieron los analistas

metacritic_score <- content(metacritic) %>%
  html_nodes(xpath = "//*//div[@class = 'metascore_w large game positive' or @class = 'metascore_w large game mixed' or @class = 'metascore_w large game negative' or @class = 'metascore_w large game tbd']") %>%
  html_text()

Convierto lo anterior a un data frame

df<- data.frame(metacritic_titles,as.numeric(metacritic_user_score),
                as.numeric(metacritic_score))
df[,3] <- df[,3]/10

Realizo la figura de los 10 juegos mejor puntuados por los usuarios

a <-ggplot(df[1:10,1:3])+
  geom_col(aes(as.numeric.metacritic_user_score.,
               reorder(metacritic_titles,as.numeric.metacritic_user_score.)), 
           fill="cyan4")+
  labs(title = "Score de usuarios")+
  coord_cartesian(xlim = c(6, 9))+
  labs(x="",y="")+
  tema()

La figura de los 10 mejores juegos puntuados por los críticos

b <- ggplot(df[1:10,1:3])+
  geom_col(aes(as.numeric.metacritic_score.,
               reorder(metacritic_titles,as.numeric.metacritic_score.)), 
           fill="deeppink3")+
    labs(title = "Score de analistas")+
  coord_cartesian(xlim = c(8.5, 9))+
  labs(x="", y="")+
  tema()

Figura de la relación entre las puntuaciones de los usuarios y los analístas para todos los juegos

c <- ggplot(df, aes(as.numeric.metacritic_score., 
                    as.numeric.metacritic_user_score.))+
  geom_point(size = 2, 
             col ="cyan4")+
  geom_smooth(method = "lm", 
              se = F, 
              col="deeppink3")+
    labs(title = "Relación entre score de usuarios y analistas",
         x = "Analistas", y = "Usuarios")+
  tema()

Uno las 3 figuras en una sola

c + (a/b)  +
  plot_layout(widths = c(1,1), tag_level = "new")+
  plot_annotation(
    title = "Juegos de PS5 mejor puntuados",
    ) & 
    theme(plot.tag.position = c(0,1),
          plot.tag = element_text(size = 6, hjust = 0, vjust = 0),
          plot.title = element_text(size = 11, hjust = 0.5))