Analysis and visualization of musical tastes by artists, songs, genres, lyrics, demographics, race, and gender
View the Deployed app on Heroku.
I. A geographical examination of the musical preferences across 15 cities -- filtered by artist genre, race, and gender -- based on Spotify streaming frequency.
II. Emotional influences and lyrical content mapped by analysis of 70 years of top-charting Billboard songs by genre.
- Spotipy API for Spotify
- Flask and Flask-PyMongo
- Leaflet.js
- D3.js
- Watson Personality Insights API
- Splinter
- Beautiful Soup
- LyricWiki
- Wordcloud Library
- Pandas
- Numpy
- HTML + CSS + JavaScript
- MongoDB
Data retrieval and analysis of lyrics from lyrics.wikia.com scraped HTML; generation of word cloud images from WordCloud (using matplotlib/Python).
Data retrieval and analysis of lyrics data supporting the Plotly bubble charts in vis_integration/static/bubble_charts
-
country
billboard_country.csv
Top country hits and lyricscountry_bub_form.csv
Output from country_bubble.ipynbcountry_bubble.ipynb
Converts country_combined.csv into format for bubble plot.country_combined.csv
Output from country_exploration.ipynbcountry_exploration.ipynb
Takes country_lyr_results and combines together into one source in country_exploration.ipynb and stored as output in country_combined.csvcountry_to_watson.ipynb
Watson Personality Insights API call and analysis. Converts billboard_country.csv into country_lyr_results.country_lyr_results
Output from Watson API
-
pop
billboard_pop.csv
top pop hits and lyricspop_bub_form.csvOutput
from pop_bubble.ipynbpop_bubble.ipynb
Converts pop_combined.csv into format for bubble plot.pop_combined.csv
Output from pop_exploration.ipynbpop_exploration.ipynb
Takes pop_lyr_results and combines together into one source in pop_exploration.ipynb and stored as output in pop_combined.csvcountry_to_watson.ipynb
Watson Personality Insights API call and analysis. Converts billboard_pop.csv into pop_lyr_results.pop_lyr_results
Output from Watson API
-
rnb
billboard_rnb.csv
Top R&B hits and lyricsrnb_bub_form.csv
Output from rnb_bubble.ipynbrnb_bubble.ipynb
Converts rnb_combined.csv into format for bubble plot.rnb_combined.csv
Output from rnb_exploration.ipynbrnb_exploration.ipynb
Takesrnb_lyr_results
and combines together into one source inrnb_exploration.ipynb
and stored as output in rnb_combined.csvcountry_to_watson.ipynb
Watson Personality Insights API call and analysis. Convertsbillboard_rnb.csv
intornb_lyr_results
.rnb_lyr_results
Output from Watson API
- Integration of all visualizations, with
app.py
to run Flask app.
- Data retrieval, analysis, and storage of artist, genre, song, gender, race, and city demographic data - in support of the interactive Leaflet.js map.
- Inspirational images for the project
- Images used for this Readme
- Landing page working directory
- Visualization pages working directory