Figure Friday 2025-w44

Billboard Hot 100

Idea & Approach

The provided dataset contains all songs that have reached number 1 on the Billboard Hot 100 since 1958.
Each song includes characteristics such as the artist, overall rating, instrumentation, and the number of weeks it remained at number 1.

My main interest within the dataset was in characteristics such as happiness, danceability, energy, and length. I decided to compare these variables in a scatterplot. Each marker (dot) represents the average value of a characteristic in a given year.

The scatterplot serves as a visual that both raises questions and offers insights (see example: Length vs. Overall Rating).

  • Over the years, the length of number 1 hits has evolved — from short tracks (logical in the LP era, around 40 to 50 minutes of total music per record), to much longer ones, and later back to somewhat shorter durations again.
  • The scatterplot also suggests that songs tend to stay at number 1 for longer periods over time. The size of each marker corresponds to the number of songs included in the yearly average — compare, for example, the larger yellow markers with the smaller purple ones.

These scatterplots can be used to identify interesting questions or trends worth exploring further.

Result

Due to time constraints, after creating the first scatterplot to test the idea — essentially to see whether it was interesting enough to develop further — I used Claude Opus 4 (via openrouter.ai) to build the remainder of the app.

I thought it would be a nice touch if clicking on a marker displayed some information about that specific year. This information is shown in the right-hand column.

Demo

Py.cafe: demo

Community link: link

Example Includes

  • Two interdependent dropdown menus
  • Dynamic updates of cards and the data grid (AG Grid) when clicking on a marker (dot) in the scatterplot

Figure Friday is an initiative by the Dash/Plotly community in which participants receive a dataset every Friday and create a visualization or small app to uncover insights from the data. The following Friday at 6:00 PM, there’s a Zoom session where some participants explain what they built and why. In the related community thread, the code is also shared — along with demos when possible — so members can learn from each other.