Gotta Catch ‘Em All – a Pokemon data-viz
Pokemon GO has taken the world by storm. With over 100 million downloads and an average of 24 million active users, Pokemon GO is the biggest mobile game ever!
To catch Pokemons in the wild and become the very best (Pokemon theme lyrics for the candid reader), people are looking for the best tips and tricks on the web. As a proof, here the Google Trends chart for searches related to “Pokemon” over the last 90 days.
We notice the sharp increase of interest starting from the 6th of July 2016, the official launch date of Pokemon GO.
The number of Youtube videos about Pokemon are also naturally growing and becoming viral: Today, I invite you to immerse yourself in the marvelous universe of Pokemon videos: from the classics to the very weird and deleted videos…
How did you create this network?
This network is created by scraping all the Youtube playlists containing the words: “Pokemon” or “Pokemon GO”. Here, each node represents a video, the links are created if videos follow each other on a playlist.
The first step is to read the content of the Youtube playlist search and to extract from the result pages the links to the associated playlists along with useful information such as the title, creator, date of creation, channel name, channel id, etc. All this data is stored in a database.
Then for each playlist, we need to actually fetch all videos information and their order in the playlist. Similarly to the playlist, I also gather the video title, creator, date alongside the number of views, likes, dislikes, etc.
Because people tend to put the same videos in different playlists, the network is composed of independent sets of videos (the vermicellis) but has a strongly connected core with the most popular videos. Due to their popularity, the videos are put in a lot of playlists which will make then even more popular afterward. Let’s call this phenomenon the popularity spiral.
I see what you did there, it’s a Pokeball!
I’m probably sure you think I have created this Pokeball shape on purpose!
For those who don’t know, a Pokeball is an essential item for Pokemon trainers as it allows to catch and hold Pokemon around your belt. If you want to know more about Pokeballs have a look at this nicely illustrated post.
Well, the funny thing is that the structure of the network itself, with all the tendrils and the well-connected core, was automatically rendered in a Pokeball shape using the excellent Scalable Force Directed Placement (SDFP) graph layout algorithm.
Ok, you did not explicitly create the Pokeball shape, what about the colors?
I have to plead guilty here, the principal colors: red, white and blue were selected on purpose to accentuate the Pokeball effect.
However, the color intensity depends on the total number of views of the each spaghetti! More formally for the scientific reader, it actually depends on the number of views of each weakly-connected components of the graph. The same technique cannot be used for the core because it is the largest component of the graph, or in layman terms, a bowl of spaghetti that cannot be separated.
To bring more depth and actually dissociate what’s happening in the center, I used a community detection algorithm to reveal and color communities of related videos. This technique is commonly used to recommend items to users. In the case of Youtube, it’s the recommend videos on the right of the video player.
I wish I could interact with the network and play with it!
Many people have asked me if I could make my networks interactive, especially in the case of my art exhibition around networks. I am proud to introduce my first interactive 3D network on this blog.
Update: The Pokemon network has evolved, read all about it here.