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))