library(tidyverse)
## ── Attaching packages ───────────── tidyverse 1.3.0 ──
## ✓ ggplot2 3.3.0     ✓ purrr   0.3.3
## ✓ tibble  2.1.3     ✓ dplyr   0.8.5
## ✓ tidyr   1.0.2     ✓ stringr 1.4.0
## ✓ readr   1.3.1     ✓ forcats 0.5.0
## ── Conflicts ──────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(ggbeeswarm)
playlist = read_csv("data/playlists-spotify.csv")
## Parsed with column specification:
## cols(
##   .default = col_double(),
##   playlist_id = col_character(),
##   playlist_name = col_character(),
##   track_id = col_character(),
##   track_explicit = col_logical(),
##   track_href = col_character(),
##   track_is_local = col_logical(),
##   track_name = col_character(),
##   track_preview_url = col_character(),
##   track_uri = col_character(),
##   track_album_id = col_character(),
##   track_album_name = col_character(),
##   track_album_release_date = col_character(),
##   track_album_release_date_precision = col_character(),
##   key_name = col_character(),
##   mode_name = col_character(),
##   key_mode = col_character()
## )
## See spec(...) for full column specifications.

Vizualização da popularidade de cada playlist:

  • Track_popularity: A popularidade é um inteiro que quantifica o quão popular é cada faixa.

Qual a playlist mais popular? A vizualização mostra que a playlist mais popular é a “Pop Up”, onde seus pontos se encontram bem concentrados na parte superior do gráfico. As playlists “Bonde do Funk” e “Esquenta Sertanejo” também são bem populares, mas possuem algumas faixas com uma popularidade baixa.

OBS: usar um sumario estatistico como a media para ordenar reorder() é util.

playlist %>% 
    ggplot(aes(x = "Músicas", y = track_popularity, color = playlist_name)) + 
    geom_quasirandom() + 
    facet_wrap(~ reorder(playlist_name, track_popularity, mean))

Vizualização da energia das faixas em relação a danceabilidade:

  • Danceability: A danceabilidade descreve como uma faixa é adequada para dançar com base em uma combinação de elementos musicais, incluindo ritmo, estabilidade de ritmo, força de batida e regularidade geral.
  • Energy: A energia é uma medida de 0,0 a 1,0 e representa uma medida perceptiva de intensidade e atividade. Normalmente, as faixas energéticas parecem rápidas, altas e barulhentas.

Quanto mais a música é energetica mais dançavel ela é? A vizualização mostra que há uma concentração maior de pontos na parte superior direita do gráfico, o que demonstra que quanto mais a faixa é energética mais ela é adequada para dançar. Podemos percebemos também que as faixas consideradas mais adequadas para dançar, são da playlist “Clássicos do Funk”, pois possuem uma danceabilidade maior.

playlist %>% 
    ggplot(aes(x = danceability, y = energy, color = playlist_name)) + 
    geom_quasirandom() + 
    geom_segment(x = 0.2, y = 0.5, xend = 0.7, yend = 1, color = "black") +
    geom_segment(x = 0.5, y = 0.1, xend = 1, yend = 0.6, color = "black")

Vizualização das faixas em relação a acústica:

  • Acousticness: Uma medida de confiança de 0.0 a 1.0, se a faixa é acústica. 1.0 representa alta confiança da faixa é acústica.

As faixas do gênero “Funk” são mais acústicas? A vizualização mostra que há uma concentração maior de pontos na parte inferior do gráfico, o que demonstra que as faixas desse gênero possuem uma acústica inferior a 0.75, com exceção de 3 faixas que se aproximam de 1.0.

playlist %>% 
    filter(grepl("Funk", playlist_name)) %>% 
    ggplot(aes(x = "musica", y = acousticness, color = playlist_name)) + 
    geom_quasirandom() 

Vizualização da instrumentalidade das faixas do gênero “Funk”:

  • Instrumentalness: Prevê se uma faixa não contém vocais. Os sons “Ooh” e “aah” são tratados como instrumentais neste contexto. As faixas de rap ou de palavras faladas são claramente “vocais”. Quanto mais próximo o valor da instrumentalidade for de 1,0, maior a probabilidade da faixa não conter conteúdo vocal. Valores acima de 0,5 têm a intenção de representar faixas instrumentais, mas a confiança é maior à medida que o valor se aproxima de 1,0.

As faixas do gênro “Funk” são mais instrumentais? A vizualização mostra que no geral as faixas desse gênero se concentram na parte inferior do gráfico, ou seja, são pouco instrumentais. A maioria das faixas possuem instrumentalidade igual a 0, e a faixa que tem maior instrumentalidade possue valor < 0.4.

playlist %>% 
    filter(grepl("Funk", playlist_name)) %>% 
    ggplot(aes(x = "musica", y = instrumentalness, color = playlist_name)) + 
    geom_quasirandom() 

Vizualização da vivacidade em relação a se a faixa inclue conteúdo explícito ou não:

  • Speechiness: Detecta a presença de uma audiência na gravação. Valores mais altos de vivacidade representam uma probabilidade maior de a pista ser executada ao vivo. Um valor acima de 0,8 oferece uma forte probabilidade de a pista estar ao vivo.
  • Track_explicit: Um valor booleano que detecta a presença de conteúdo explícito nas faixas.

As faixas com uma presença de audiência na gravação incluem conteúdo explícito? A vizualização mostra que as faixas que não incluem conteúdo explícito estão mais concentradas em relação aos valores de vivacidade e as com as que incluem conteúdo explícito tem valores de vivacidade menos concentrados, ou seja, há uma possibilidade dos das faixas com conteúdo explícito terem sido gravadas com a presença de uma audiência.

playlist %>% 
    ggplot(aes(x =  speechiness, y = track_explicit, color = track_explicit)) + 
    geom_boxplot(coef = 10)

OBS: grafico de densidade de valencia pra saber se as musicas são mais tristes ou felizes. no geral as musicas são mais felizes com exceção da playlist coração partido.

Vizualização da valência das faixas:

  • Valence: Uma medida de 0,0 a 1,0 que descreve a positividade musical transmitida por uma faixa. As faixas com alta valência soam mais positivas (por exemplo, alegres, eufóricas), enquanto as faixas com baixa valência soam mais negativas (por exemplo, tristes, deprimidas, zangadas).

As faixas são mais positivas ou negativas? A vizualização mostra que no geral as faixas são mais positivas, com excecão da playlist “Coração Partido”.

playlist %>% 
    ggplot(aes(x =  valence, color = playlist_name)) + 
    geom_density() +
    facet_wrap(~ reorder(playlist_name, track_popularity, mean))

Opcão melhor:

playlist %>% 
    ggplot(aes(x = reorder(playlist_name, valence), y = valence, color = playlist_name)) + 
    geom_boxplot(coef = 1000) +
    coord_flip() +
    labs( x = "Playlist", y = "Valência", title = "Qual a playlist mais popular?")