Skip to content

Instantly share code, notes, and snippets.

@gonzalezgouveia
Last active May 17, 2019 13:11
Show Gist options
  • Save gonzalezgouveia/56c9cd557cd3d131e1dbf6c0f9b9e073 to your computer and use it in GitHub Desktop.
Save gonzalezgouveia/56c9cd557cd3d131e1dbf6c0f9b9e073 to your computer and use it in GitHub Desktop.
library(tidyverse)
library(plotly)
library(ggthemes)
# devtools::install_github('rensa/ggflags')
library(ggflags)
# Hecho por Rafa @GonzalezGouveia
# Con gusto para #DatosDeMiercoles, propuesto por @R4DS_es
# suponiendo que ya tenemos los datos en un csv
# sino, el proceso para descarlo está aquí:
# https://github.com/cienciadedatos/datos-de-miercoles/tree/master/datos/2019/2019-05-15
dataset_spotify <- read_csv('./data/spotify_data.csv')
# Agrupamos canciones por país
canciones_por_pais <- dataset_spotify %>%
group_by(top_pais) %>%
summarise(mean_positividad = mean(positividad),
mean_modo = mean(modo)) %>%
ungroup() %>%
# asignamos códigos para poner las banderitas
mutate(
codigo_pais = case_when(
top_pais == 'El Top 50 de Argentina' ~ 'ar',
top_pais == 'El Top 50 de Bolivia' ~ 'bo',
top_pais == 'El Top 50 de Chile' ~ 'cl',
top_pais == 'El Top 50 de Costa Rica' ~ 'cr',
top_pais == 'El Top 50 de Colombia' ~ 'co',
top_pais == 'El Top 50 de Ecuador' ~ 'ec',
top_pais == 'El Top 50 de España' ~ 'es',
top_pais == 'El Top 50 de Guatemala' ~ 'gt',
top_pais == 'El Top 50 de Honduras' ~ 'hn',
top_pais == 'El Top 50 de la Republica Dominicana' ~ 'do',
top_pais == 'El Top 50 de El Salvador' ~ 'sv',
top_pais == 'El Top 50 de México' ~ 'mx',
top_pais == 'El Top 50 de Nicaragua' ~ 'ni',
top_pais == 'El Top 50 de Panamá' ~ 'pa',
top_pais == 'El Top 50 de Paraguay' ~ 'py',
top_pais == 'El Top 50 de Perú' ~ 'pe',
top_pais == 'El Top 50 de Uruguay' ~ 'uy',
top_pais == 'El Top 50 de Venezuela' ~ 've'
)
)
# creamos gráfica
p2 <- canciones_por_pais %>%
ggplot(aes(x = mean_positividad,
y = mean_modo,
label = top_pais,
country = codigo_pais)) +
geom_point(size = rel(12)) +
geom_flag(size = rel(10)) +
labs(title = 'La musica hispana tiene personalidad',
x = '<- ira - positividad - alegría ->',
y = '<- menor - modo - mayor ->') +
# escogiendo tema gdocs
theme_gdocs() +
# cambiando algunas cosas del tema
theme(axis.text = element_blank(),
axis.line.y = element_line(),
plot.subtitle = element_text(hjust = 0, size = rel(1.3),
face = "plain", colour = 'gray40'),
axis.title = element_text(face = "plain",
colour = 'gray40',
size = rel(1.3)))
# viendo la gráfica
p2
# todo listo. ahora a guardar la gráfica
ggsave('./images/spotify.png',
width = 5,
height = 5)
# Hecho por Rafa @GonzalezGouveia
# Con gusto para #DatosDeMiercoles, propuesto por @R4DS_es
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment