The RIOT API challenge of April 2016 focuses on the use of champion mastery points.

Mastery Makes Maps

Using those data, a map (or graph) of the champions is created as shown by the picture.

To simply visit the website look at the box below or the navigation bar

A more lengthy explanations of what you see and how it was made follows below.

General Idea of the Map

For a given player, the mastery points of a champion represents her/his willingness and ability to play the champion. Thus we can consider the champion with the highest score the player's main, and the group of champions with high score the player's champion pool.

From the perspective of the players, some champions are more intuitive to play while others are more challenging. We expect that the champion pools of the players reflect those tendencies: those champions pools show which champions are similar from the point of view of the players.

Let's also remark that those champion mastery data are more reliable than sampling the champion pool from ranked games. Indeed it takes into account normal (not ranked) games and it attributes points based on the performance of the player rather than on quantity alone.

The Map is thus composed of nodes, one for each champion, and of edges or links between champions. Those links are weighted: the more two champions are in similar champion pools, the stronger is the link and the closer they are on the map.

How the Map was Created

The first step was to gather data. We sampled the champion mastery points of 13 000 players (and some) across the EUW, NA, BR and JP servers. For details on sampling process, please refer to the documentation on the associated github repository.

In order to consider the changes in the meta, or the evolution of a player, only champions played less than a month ago are kept. Furthermore, only the champions with the highest mastery points are taken into account. This is done to avoid forming strong links between less-played champions. Because of those filters, some champions may not appear, most likely those not favored by the current meta (April-May 2016).

Each champion is a node (represented by the champion picture in the map). For each player we calculate the strength of the links between every champions. We then aggregate those (we take the mean over all players for each link) to create the general map.

For greater clarity, let's consider a fictive player who mastered the following champions :
Illaoi : 13000
Garen : 11000
Rek'Sai : 6300
Sona : 50
The mastery points clearly show that Sona is not part of this player's champion pool. She is thus not considered at all. In practice every champions with a level below 4 are not considered. Illaoi and Garen have both a large amount of mastery points and form the primary champions. Rek'Sai has less point but is still played by the player, she is thus part of the secondary champions.
The following links are created :
primary-primary : Illaoi - Garen, 11000/13000
primary-secondary : Illaoi - Rek'Sai, 6300/13000
primary-secondary : Garen - Rek'Sai, 6300/11000
No "secondary-secondary" links are created. The strength of the link is the mastery values of the "weaker" champion relative to the "stronger" champion.

We have thus built a graph of the champions where the strength of the links represent their closeness from a player point-of-view.


A short note to warn against drawing too many conclusions from the visual of the graph. The layout is automatically generated starting with random positions. Due to that, a same graph can lead to different layouts but still has the same intrasec properties.

For example, the isolation of the Olaf in the top left corner can mean that :
maybe Olaf is rarely played (meta influence?),
maybe he is a strong main with weak links (Olaf-mains only play Olaf),
maybe it is an artifact of the layout.