Repository for small-ish analysis and data viz projects.
Analysed data from Stackoverflow Developer survey provided by #TidyTuesday and turned it into a little article using Quarto. Really late to the party, but love how smooth it is to go from a jupyter notebook to a static site in Quarto.
Been a while since I did a #TidyTuesday challenge. Week 35 was all about the Power Rangers Franchise. I didn't even know it was still going, which is incredible!
So I made a stripplot exploring average ratings of episodes + seasons. Looks like the latest ones (2019, 2020) were quite good :D
Came across an interesting paper from 2015 about tracking global bicycle ownership. Couldn't find any updates since then, so decided it's worth to map even if slightly outdated.
Good chance to play around with pypalettes - a great new python library that makes finding a nice colour map a breeze!
I've always wanted to explore the Spotify API. So I combined it with my love of cycling and looked at songs about bikes. Songs about bikes comes from Wikipedia which links to a more definite list of 2,300 songs from Bike&Chain. Track features (valence, energy, popularity) comes from Spotify API.
Played around with custom colour maps and gradients for the visualisations. Not sure gradient bar charts are best practice, but def fun! :D
Since I first used pyWaffle
it's been updated and you can now display a waffle chart in specific axes - so I wanted to try it out and made a little tile grid map of London displaying the proportion of household waste sent for recyling in 2022/23.
Contributions to the Du Bois Visualization Challenge 2024.
The goal is to celebrate the data visualization legacy of W.E.B Du Bois by recreating the visualizations from the 1900 Paris Exposition using modern tools - in my case Python.
Chart for #MakeoverMonday looking at the World's Highest Paid Athletes. Used this simple data set to explore plottable
- an awesome python library for creating stunning tables.
Chart for #TidyTuesday week 2 exploring birth dates of NHL players. Settled on a dotplot/stripplot and spent some time figuring out how to create a broken y-axis.
Reused data from Star Wars scripts I cleaned before to try bigram analysis (ie. co-occurence) of words said by 3-CPO. Network graph shows most common words that occured together.
Contribution to #TidyTuesday exploring grant opportunities in the US. Found a great tutorial on how to create streamgraphs in python with the exact type of curve smoothing I wanted. Can't wait to use it for making a bumpchart.
Found data for all six Star Wars scripts in this Github repository by Jean Wieme. He kindly made this data available for others to experiment and use it in data viz. So I did. Wanted to plot each line of Anakin and who he speaks to for the first three episodes, but the addressant is only available for the first one. So I focused on getting the chart right for just one episode.
Came across the evaluation report for the Fix Your Bike voucher scheme that was run by the UK Department for Transport in 2020-2021 in an effort to increase active travel. The evaluation shows that reported levels of cycling have increased for people who have used their vouchers and got their bikes fixed. Read the full report here
Rough sketch for the chart made in python, final design tweaks in Figma. Code here
Map for #MapPromptMonday Desserts showing Ice cream shops in Italy.
Map for #MapPromptMonday Plants showing total trees and main type per 4sqkm.
Fun playing around with data from Google Search Autcomplete on "Why do cyclists ...". Managed to create a more complex layout in matplotlib using paths and bezier curves. Quite happy with the end result.
A few weeks ago, I read an article about an increase in number of households replacing their lawns with artificial grass. I was wondering how sellers are promoting artificial grass and manually scraped some websites. Good project to get back to some NLP and text analysis. And I've always wanted to create a histogram that shows text instead of bars.
For #MapPromptMonday bivariate, created this quick map of cycling rates versus car ownership. Definitely want to dig a bit deeper into car ownership rates at some point. Also created a helper script to speed up bivariate colourmap creation in the future.
After falling in love with the ridge-map libarary, I'm currently working on a streamlit app that allows users to create their own ridge map designs. Watch this space ...
Follow up from maps I created as part of the #30DayMapChallenge 2022. Fun to play around with fishnet grids in python and created some maps that display aggregate data per square km (here: cultural venues in London). Definitely something I'll come back to at some point.
Continued playing around with cycling data for London. Updated the tilegrid map and created a few more charts. Definitely getting better at customising charts in matplotlib and using different chart types. Also turned the tile grid map into a Streamlit app (live app available here).
Discovered OSMnx, a python library to easily extract geospatial data from OpenStreetMaps. Explored a few different ways to extract and display data. Definitely quite a powerful tool.
Triggered by #TidyTuesday, got my hands on some gender pay gap data again. Worked up a couple of charts but wasn't too convinced where this was going. Wanted to focus on Tech vs charities, but haven't fully managed to do that yet. Was focused on trying out some new chart types, including beeswarm and ridge line plots. Might pick it up another time. Data comes from the TidyTuesday repository.
Been looking at London cycling rates and found rates of regular cyclists are higher in inner + SW London. Latest data ending Nov 2020 shows increases in some boroughs since the pandemic. Data sourced from Active Life Survey. The map layout is based on the squared map from the London Data Store. Checkout my Twitter thread to see how it's put together.
Another project using Google Search API to look at Google searches of 'bike' across Europe before & since the pandemic. Not much change in Scandinavia but higher interest in some countries suggesting a new normal? ๐ฒ๐
Heavily inspired by Google Trends The New Normal.
First time using a new library (pytrends) to pull data from the Google Search API. Following a blog I wrote last year on sourdough baking, was curious if interest in sourdough was only a peak during the pandemic or remained high.
Been playing around with some Star Wars data using SWAPI and found a great template for making nice looking tables in matplotlib.
Analysis using a new dataset that classifies and tags all active and inactive charities in the UK according to their activity/sector. This analysis explores how number of charities in specific activities have changed, whether specific sectors were more "trendy" at some point and whether others have died out. First time doing a streamgraph in python. Data available here.