As 200 musicas mais tocadas no Brasil. Relatório semanal das faixas mais tocadas no momento. Playlist atualizada todas as sextas-feiras.
library(tidyverse)
library(here)
library(plotly)
theme_set(theme_minimal())
# SEMPRE read_csv NUNCA read.csv
spotify = read_csv(
here("data/spotify.csv")
)
artists = read_csv(
here("data/artists.csv")
)
Os dados foram coletados, dia 09/10/2021, a partir da Spotify Web API, utilizando a biblioteca para Python Spotipy. Todo o código utilizado está disponível aqui. Os dados podem ser baixados nesse link. Cada item nos dados representa uma faixa. As colunas que cada item tem são as seguintes:
| Campo | Tipo | Descrição |
|---|---|---|
| track_id | int | Identificador da faixa |
| track_name | chr | Nome da faixa |
| duration | double | A duração da faixa em ms |
| popularity | int | A popularidade de uma faixa é um valor entre 0 e 100, com 100 sendo o mais popular. A popularidade é calculada por algoritmo e é baseada, na maior parte, no número total de reproduções que a faixa teve e quão recentes são essas reproduções. De um modo geral, as músicas que estão sendo muito tocadas agora terão uma popularidade maior do que as músicas que eram tocadas muito no passado. Faixas duplicadas (por exemplo, a mesma faixa de um single e de um álbum) são classificadas de forma independente. A popularidade do artista e do álbum é derivada matematicamente da popularidade da faixa. |
| artist | chr | Nome do(s) artista(s) separados por “|” |
| liveness | double | Detecta a presença de uma audiência na gravação. Valores mais elevados representam uma probabilidade aumentada de que a faixa tenha sido executada ao vivo. Um valor acima de 0,8 fornece forte probabilidade de que a faixa esteja ao vivo. |
| dancealibity | double | Descreve como uma faixa é adequada para dançar com base em uma combinação de elementos musicais, incluindo andamento, estabilidade do ritmo, intensidade da batida e regularidade geral. Um valor de 0,0 é menos dançável e 1,0 é mais dançante. |
| energy | double | Energia é uma medida de 0,0 a 1,0 e representa uma medida perceptual de intensidade e atividade. Normalmente, as faixas energéticas parecem rápidas, altas e barulhentas. Por exemplo, death metal tem alta energia, enquanto um prelúdio de Bach tem pontuação baixa na escala. As características perceptivas que contribuem para este atributo incluem faixa dinâmica, intensidade percebida, timbre, taxa de início e entropia geral. |
| speachness | double | Detecta a presença de palavras faladas em uma faixa. Quanto mais exclusivamente falada for a gravação (por exemplo, talk show, audiolivro, poesia), mais próximo de 1,0 será o valor do atributo. Valores acima de 0,66 descrevem faixas que provavelmente são compostas inteiramente de palavras faladas. Valores entre 0,33 e 0,66 descrevem faixas que podem conter música e fala, em seções ou em camadas, incluindo casos como música rap. Valores abaixo de 0,33 provavelmente representam música e outras faixas não semelhantes à fala. |
| acousticness | double | Uma medida de confiança de 0,0 a 1,0 para saber se a faixa é acústica. 1.0 representa alta confiança de que a faixa é acústica |
| valence | double | Uma medida de 0,0 a 1,0 que descreve a positividade musical transmitida por uma faixa. Faixas com alta valência soam mais positivas (por exemplo, feliz, alegre, eufórico), enquanto faixas com baixa valência soam mais negativas (por exemplo, triste, deprimido, com raiva). |
Primeiramente, observando os 15 artistas que mais aparecem no Top 200 Brasil, percebemos um domínio de homens e artistas que cantam sertanejo e piseiro.
artists = artists %>% group_by(nome) %>% summarise(
contagem = n())
top15<-artists[rev(order(artists$contagem))[1:15],]
top15 %>% ggplot(aes(x=contagem,y=reorder(nome,contagem))) +
geom_bar(fill='#1ed65f',alpha=0.8,stat ="identity") +
labs(
y="",
x="Aparições",
title="15 artistas com mais músicas no Top 200 Spotify Brasil"
) + scale_x_continuous(breaks=c(2,4,6,8,10))
Verificando o gráfico da distribuição de popularidade, observamos uma distribuição assimétrica com uma cauda longa para esquerda e com uma grande concentração próximo a 75. Apresentando poucas faixas com popularidade muito baixa.
spotify %>%
ggplot(aes(x=popularity)) +
geom_bar(fill='#1ed65f',alpha=0.6) +
labs(
y="",
x="Popularidade",
title="Distribuição de popularidade do Top 200"
)
Como observado no gráfico abaixo, as faixas têm, em grande maioria, até 200 segundos de duração. A distribuição é assimétrica, concentrada em valores mais baixos e apresenta uma cauda longa para direita. Ao conferir as faixas que ultrapassam 600 segundos na base, concluimos que as duas faixas mais longas pertecem ao grupo Poesia Acústica.
spotify %>% mutate(duration_segundos = duration * 0.001) %>%
ggplot(aes(x=duration_segundos)) +
geom_histogram(bins = 30,fill='#1ed65f',alpha=0.6) +
labs(
y="",
x="Duração (em segundos)",
title="Distribuição de duração das faixas do Top 200 Brasil"
)
Logo abaixo, observamos a distribuição de mais algumas varíaveis utilizando boxplots.
Nesse primeiro boxplot, podemos concluir que a distribuição da varíavel energy não é simétrica e apresenta uma mediana de 0.741, indicando que as faixas do top 200 Brasil são, em geral, bem energéticas. Também apresenta alguns pontos extremos, são elas: Happier Than Ever da Billie Eilish e Alívio de Jessé Aguiar.
spotify %>% ggplot(aes(x="",y=energy)) + geom_boxplot(outlier.color = "red",alpha=0.4,fill='#1ed65f',color="#0a8d73",outlier.size=2,outlier.fill ="red", width=0.2) + labs(title="Boxplot Energy",x="")
Quanto a danceability, no gráfico abaixo, temos uma distribuição quase simétrica com um mediana de 0.6705, indicando que as faixas do Top 200 Spotify tendem a serem dançantes.Também apresenta alguns pontos extremos, são elas: Happier Than Ever da Billie Eilish e A Maior Saudade - Ao Vivo de Henrique & Juliano.
spotify %>% ggplot(aes(x="",y=danceability)) + geom_boxplot(outlier.color = "red",alpha=0.4,fill='#1ed65f',color="#0a8d73",outlier.size=2,outlier.fill ="red",width=0.2 ) + labs(title="Boxplot Danceability",x="")
No gráfico abaixo, podemos concluir que a distribuição da varíavel acousticness é simétrica e apresenta uma mediana de 0.3555, indicando que a presença de faixas acústicas no Top 200 Brasil no Spotify é baixa. Não apresenta pontos extremos.
spotify %>% ggplot(aes(x="", y=acousticness)) + geom_boxplot(outlier.color = "red",alpha=0.4,fill='#1ed65f',color="#0a8d73",outlier.size=2,outlier.fill ="red",width=0.2 ) + labs(title="Boxplot Acousticness", x="")
Aqui usaremos o k-means para agrupar as faixas utilizando as varíaveis danceability e popularity. Logo abaixo, podemos visualizar interativamente o resultado.
spotify_numerical = spotify %>% select("danceability","popularity")
spotify_numerical_norm <- as.data.frame(scale(spotify_numerical))
set.seed(445)
# Execution of k-means with k=3
spotify_kmeans <- kmeans(spotify_numerical_norm, centers=5)
spotify$grupo <- as.character(spotify_kmeans$cluster)
fig <- plot_ly(data = spotify,type="scatter",mode="markers", size=12,x = ~danceability, y = ~popularity, color = ~grupo, text = ~paste("Track: ", track_name, '<br>Popularity:', popularity,'<br>Artists:', artist))
fig <- fig %>% layout(legend = list(x = 0.05, y = 0.95,title=list(text='<b> Grupo </b>')))
fig
Conclusões:
Grupo 1: Faixas pouco dançantes e populares predominam nesse grupo. Exemplos pertencentes a este grupo: traitor, dejavu e drivers license u da Olivia Rodrigo e penhasco da Luiza Sonza.
Grupo 2: Possuem uma grande variação quanto a danceability, porém possuem uma alta popularidade. São exemplos desse grupo: Meu Pedaço de Pecado do João Gomes, INDUSTRY BABY do Lil Nas X e Woman da Doja Cat.
Grupo 3: Nesse grupo, temos faixas com boa popularidade (em torno de 70) e alta danceability. Have Mercy da Chroe e Deixa de Onda - DENNIS são alguns exemplos desse grupo.
Grupo 4: Pertecem a esse grupo faixas não populares e pouco dançantes. Exemplos desse grupo: Sonho por Sonho do Belo e Deu Bom do Grupo K.O.
Grupo 5: Faz parte desse grupo músicas de médio pra bem dançantes e com uma boa popularidade (girando em torno de 70). VIP - e MULHER DO ANO XD da Luiza Sonza são exemplos de faixas pertencentes a esse grupo.