A crash course in cross checking consistently cruddy companions.

Live Demo - http://samhine.pythonanywhere.com/ [NOW DEFUNCT]

Twitter - https://twitter.com/samhine

Idea

I’ve been losing a lot lately, so much that I decided to channel the angry energy from doing so into something somewhat productive (if not slightly toxic). Essentially, I want to know who’s losing my games for me — like every hard stuck SoloQ player I’m certain it’s my teammates. So, what else am I working with League data daily for, if not to back up my frustrated thoughts/words/shouting with a few pretty graphs and tables? (as well as y’know… helping 🍃FlyQuest win).

Whenever I want to make something visual, I map it out in Photoshop using my drawing pad to make sure I’m not blindly throwing in components when it comes to mocking up.

Untitled

I felt the above gives a nice round up of what I’d want to see. I’m mainly focusing on Gold Differences since, in my opinion, that is the greatest signifier of someone being “ahead” or “behind”

The components I’ve chosen are as follows:

  1. Gold over time, per role
  2. Radar chart of average gold difference (GD) at 10 minutes for each role
  3. Tables for each role of which champions have the largest average negative gold difference
  4. Histograms of gold difference at 10 minutes
  5. Some way to change the timing (which I’ve referenced as being “10 minutes” thus far).

The Data

It’s pretty simple where we’re going to be grabbing out data from — the Riot API.

<aside> 💡 JackJGaming has a fairly recent guide to interacting with the Riot API via Python - which is what I’ll be doing here.

</aside>

For now, I’m only really interested in my last 100 games - not only because this means I can get everything with a single API call, but also because I want to keep some recency to the data we’ll be looking at.

Below is the code I used to gather this data. I’m using my own personal Blitzcrank library (because it grabs data.. get it?) - but I’m doing fairly simple data retrieval and processing. If you’re up for a small challenge, you can try and recreate this using the base API calls or your favorite library.