(Acest articol a fost publicat pentru prima dată pe Rși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)
Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.
(Tidy Tuesday este un proiect pentru a furniza seturi de date săptămânale pentru ca utilizatorii R să-și exerseze abilitățile de codificare. Puteți găsi detalii complete aici.)
M-am întors spre soția mea în mașină zilele trecute și i-am spus, de nicăieri: „Știi, îmi place puțin sax într-un cântec”.
Ea a râs.
Dar vorbeam foarte serios.
În mod coincidență, în timp ce căutam prin arhivele Tidy Tuesday câteva date cu care să te joci în R, după ce nu am folosit limba pentru o perioadă, am găsit setul de date Billboard Hot 100 Number Ones. Și conține un steag pentru „…dacă melodia conține un saxofon”.
La naiba da.
Ceea ce, la rândul său, m-a făcut să mă întreb ce an a avut cel mai mult sax în el?

Din păcate, de la nașterea mea în 1987, doar 11 ani în total au avut chiar și un cântec de saxos pe numărul 1. Și de când eram suficient de mare ca să-mi pese în mod semnificativ, adică 1994, doar 5 ani au avut un succes sax-tastic. Ce facem ca societate? Eu spun că IA ne poate lua, pentru că cu adevărat ne-am pierdut sufletele cu zeci de ani în urmă.
Două melodii în special țin fortul – „I Will Always Love You” de Whitney Houston în 1992, cu 14 săptămâni la nr. 1, împingând 1992 la anul cu cel mai mare punctaj (31%) cu asistența „How Do You Talk To An Angel” de la The Heights. Apoi, în 2015, „Uptown Funk” al lui Bruno Mars a fost o amânare strălucitoare în întuneric și a atins, de asemenea, 14 săptămâni la nr. 1, dar din păcate sa luptat singur, lăsând 2015 la doar 27% saxy.
library(tidyverse)
library(ggtext)
library(tidytuesdayR)
library(tinieR)
# importing data
data <- tidytuesdayR::tt_load('2025-08-26')
songs <- data$billboard
# data manip
sax_songs <- songs |>
filter(saxophone == 1) |>
separate(cdr_genre, into = c("main_genre", "other_genres"), sep = ";", fill = "right") |>
replace_na(list(main_genre = "Rock")) |>
separate(date, c("year", "month", "day"), sep = "-", remove = FALSE) |>
select(year, weeks_at_number_one, main_genre) |>
group_by(year) |>
summarise(perc_of_year = (sum(weeks_at_number_one)/52)) |>
ungroup() |>
mutate(year = as.Date(paste(year, "01", "01", sep = "-")))
# plot
sax_songs |>
ggplot(aes(year, perc_of_year)) +
geom_point(colour = "#E03135", size = 2) +
scale_y_continuous(labels=scales::percent) +
scale_x_date(date_breaks = "10 year", date_labels = "%Y", expand = expansion(add = 0)) +
xlim(c(as.Date("1959-01-01"), as.Date("2023-01-01"))) +
theme(legend.position = "none",
axis.text.x = element_text(face = "bold", colour = "#4D556B"),
axis.text.y = element_text(face = "bold", colour = "#4D556B"),
axis.title.y = element_text(face = "bold", colour = "#4D556B"),
#axis.ticks.y = element_blank(),
axis.line = element_line(colour = "#4D556B"),
#panel.border = element_rect(color = "black", fill = NA),
panel.grid = element_blank(),
panel.grid.major.y = element_line(size = 0.3, colour = "black", linetype = 3),
#plot.title.position = "plot",
plot.title = element_textbox(face = "bold", colour = "#AE030E", size = 14),
plot.background = element_rect(fill = "#FFF8E7"),
panel.background = element_rect(fill = "#FFF8E7"),
plot.margin = margin(20,20,20,20),
plot.subtitle = element_textbox(face = "bold"),
plot.caption = element_textbox(face = "italic", colour = "#4D556B")) +
labs(x = "", y = "% of Year",
title = "Percentage of each year where the Billboard No. 1 song
prominently contained a saxophone",
subtitle = "",
caption = "% calculated as total no. 1 weeks in year / 52") +
annotate("segment", x = as.Date('2015-01-01'), y = 0.24, xend = as.Date('2015-01-01'), yend = 0.26, arrow = arrow(type = "closed", length = unit(0.01, "npc"))) +
annotate("text", x=as.Date('2015-01-01'),y=0.24, label = "Uptown Funk", color = "#185AA6", angle = 0, hjust = 0.5, vjust = 1.5, size = 3, fontface = "bold") +
annotate("segment", x = as.Date('1992-01-01'), y = 0.28, xend = as.Date('1992-01-01'), yend = 0.3, arrow = arrow(type = "closed", length = unit(0.01, "npc"))) +
annotate("text", x=as.Date('1992-01-01'),y=0.28, label = "I Will Always Love You", color = "#185AA6", angle = 0, hjust = 0.5, vjust = 1.5, size = 3, fontface = "bold")
