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)
playlists = read.csv("playlists-spotify.csv")
glimpse(playlists)
## Observations: 502
## Variables: 32
## $ playlist_id <fct> 37i9dQZF1DWYYeOy9vs7I5, 37i9dQZF1D…
## $ playlist_name <fct> Bonde do Funk, Bonde do Funk, Pop …
## $ danceability <dbl> 0.819, 0.940, 0.940, 0.888, 0.708,…
## $ energy <dbl> 0.684, 0.711, 0.711, 0.841, 0.305,…
## $ key <int> 6, 3, 3, 6, 6, 7, 1, 3, 0, 11, 6, …
## $ loudness <dbl> -7.169, -3.975, -3.975, -1.933, -1…
## $ mode <int> 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0…
## $ speechiness <dbl> 0.1190, 0.1910, 0.1910, 0.1470, 0.…
## $ acousticness <dbl> 0.13200, 0.00369, 0.00369, 0.46000…
## $ instrumentalness <dbl> 0.00e+00, 1.17e-04, 1.17e-04, 9.12…
## $ liveness <dbl> 0.0942, 0.0765, 0.0765, 0.0568, 0.…
## $ valence <dbl> 0.959, 0.693, 0.693, 0.964, 0.860,…
## $ tempo <dbl> 170.187, 130.000, 130.000, 149.994…
## $ track_id <fct> 5dKesZwp6deuhEeW8F1UEi, 4mkagJJ8AM…
## $ time_signature <int> 4, 4, 4, 4, 5, 4, 4, 4, 5, 4, 4, 4…
## $ track_disc_number <int> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ track_duration_ms <int> 137125, 132923, 132923, 120200, 13…
## $ track_explicit <lgl> FALSE, FALSE, FALSE, FALSE, FALSE,…
## $ track_href <fct> https://api.spotify.com/v1/tracks/…
## $ track_is_local <lgl> FALSE, FALSE, FALSE, FALSE, FALSE,…
## $ track_name <fct> Hit Contagiante, Te Amo Sem Compro…
## $ track_popularity <int> 82, 80, 80, 53, 56, 0, 60, 74, 60,…
## $ track_preview_url <fct> https://p.scdn.co/mp3-preview/7dfc…
## $ track_track_number <int> 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ track_uri <fct> spotify:track:5dKesZwp6deuhEeW8F1U…
## $ track_album_id <fct> 5da8Quq01mGKZvEpBRfFZh, 0SG6SKXEwp…
## $ track_album_name <fct> Hit Contagiante, Sintonia (Uma Ser…
## $ track_album_release_date <fct> 2019-07-26, 2019-08-16, 2019-08-16…
## $ track_album_release_date_precision <fct> day, day, day, day, day, day, day,…
## $ key_name <fct> F#, D#, D#, F#, F#, G, C#, D#, C, …
## $ mode_name <fct> minor, major, major, major, major,…
## $ key_mode <fct> F# minor, D# major, D# major, F# m…
Existe uma correlação média entre a popularidade das faixas e sua danceabilidade. Mas é possível observar uma tendência que, quanto mais dançável, a música tende a ser mais popular, apesar de existirem exceções.
playlists %>%
ggplot(mapping = aes(x = danceability, y = track_popularity)) +
geom_point(alpha = 0.5)
É possível observar uma concentração de músicas com maior popularidade e baixos níveis de liveness.
playlists %>%
ggplot(mapping = aes(x = liveness, y = track_popularity)) +
geom_point(alpha = 0.5)
Mais da métade das músicas com conteúdo explícito possuem uma popularidade maior do que a popularidade média das músicas sem conteúdo explícito, embora as mais populares sejam aquelas que não possuem o conteúdo.
playlists %>%
ggplot(mapping = aes(x = track_explicit, y = track_popularity, color = track_explicit)) +
geom_boxplot() +
coord_flip()