Introduction

It was really cool to deep dive into current League of Legends (LoL) ranked data. One surprising result was how dominant Miss Fortune appears in lower ranks such as Bronze, Silver, Gold, and Platinum. Other champions like Teemo and Briar also play heavy roles in lower ranks, often outperforming expectations. My research question explores whether champions with higher pick rates have systematically different win rates than less‐picked champions.

Data Source & Collection

Data was ethically scraped from OP.GG using a custom R script. I collected champion statistics across five ranked tiers: Bronze, Silver, Gold, Platinum, and Diamond. The dataset includes win rate, pick rate, ban rate, champion name, and tier.

Data Wrangling

# Create OP.GG rank order per tier
all_ranks_data <- all_ranks_data %>%
group_by(rank_tier) %>%
mutate(opgg_rank = row_number()) %>%
ungroup()


# Create high vs low pick groups
all_ranks_data <- all_ranks_data %>%
group_by(rank_tier) %>%
mutate(pick_group = ntile(pick_rate, 4)) %>%
mutate(pick_group = ifelse(pick_group == 4, "High Pick (Top 25%)",
ifelse(pick_group == 1, "Low Pick (Bottom 25%)", NA))) %>%
filter(!is.na(pick_group))

Visualization 1: Bronze Table

bronze_data <- all_ranks_data %>% filter(rank_tier == "bronze")
bronze_data %>% head(15)
## # A tibble: 15 × 7
## # Groups:   rank_tier [1]
##    opgg_rank champion     rank_tier win_rate pick_rate ban_rate pick_group      
##        <int> <chr>        <chr>        <dbl>     <dbl>    <dbl> <chr>           
##  1         1 Miss Fortune bronze        52.3     27.5     15.0  High Pick (Top …
##  2         2 Teemo        bronze        54.2      2       24.4  Low Pick (Botto…
##  3        11 Morgana      bronze        52.2      2.75    27.1  Low Pick (Botto…
##  4        12 Ziggs        bronze        52.1      2.91     2.21 Low Pick (Botto…
##  5        19 Mel          bronze        51.7      1.63    42.0  Low Pick (Botto…
##  6        20 Master Yi    bronze        51.5     10.5     22.0  High Pick (Top …
##  7        22 Mordekaiser  bronze        51.4      9.56    15.3  High Pick (Top …
##  8        24 Viego        bronze        51.0     11.2      8.02 High Pick (Top …
##  9        25 Morgana      bronze        50.8     11.1     27.9  High Pick (Top …
## 10        29 Mel          bronze        50.2     10.2     47.2  High Pick (Top …
## 11        30 Yasuo        bronze        50.2     11.0     20.6  High Pick (Top …
## 12        31 Lux          bronze        50.0     17.2     24.1  High Pick (Top …
## 13        32 Jhin         bronze        49.8     15.0      5.55 High Pick (Top …
## 14        33 Jinx         bronze        49.6     15.8      6.26 High Pick (Top …
## 15        34 Ashe         bronze        49.6     15.7     11.7  High Pick (Top …

This table shows the Bronze‐tier champion stats exactly as scraped from OP.GG. It gives a quick snapshot of which champions are most successful in low‐rank play and provides the foundation for later comparisons across the other tiers.

Visualization 2: All Ranks Table

all_ranks_data %>% head(20)
## # A tibble: 20 × 7
## # Groups:   rank_tier [1]
##    opgg_rank champion     rank_tier win_rate pick_rate ban_rate pick_group      
##        <int> <chr>        <chr>        <dbl>     <dbl>    <dbl> <chr>           
##  1         1 Miss Fortune bronze        52.3     27.5     15.0  High Pick (Top …
##  2         2 Teemo        bronze        54.2      2       24.4  Low Pick (Botto…
##  3        11 Morgana      bronze        52.2      2.75    27.1  Low Pick (Botto…
##  4        12 Ziggs        bronze        52.1      2.91     2.21 Low Pick (Botto…
##  5        19 Mel          bronze        51.7      1.63    42.0  Low Pick (Botto…
##  6        20 Master Yi    bronze        51.5     10.5     22.0  High Pick (Top …
##  7        22 Mordekaiser  bronze        51.4      9.56    15.3  High Pick (Top …
##  8        24 Viego        bronze        51.0     11.2      8.02 High Pick (Top …
##  9        25 Morgana      bronze        50.8     11.1     27.9  High Pick (Top …
## 10        29 Mel          bronze        50.2     10.2     47.2  High Pick (Top …
## 11        30 Yasuo        bronze        50.2     11.0     20.6  High Pick (Top …
## 12        31 Lux          bronze        50.0     17.2     24.1  High Pick (Top …
## 13        32 Jhin         bronze        49.8     15.0      5.55 High Pick (Top …
## 14        33 Jinx         bronze        49.6     15.8      6.26 High Pick (Top …
## 15        34 Ashe         bronze        49.6     15.7     11.7  High Pick (Top …
## 16        35 Zaahen       bronze        49.4     20.2     42.2  High Pick (Top …
## 17        36 Caitlyn      bronze        48.8     19.7     23.4  High Pick (Top …
## 18        37 Rammus       bronze        52.9      2.3      4.66 Low Pick (Botto…
## 19        38 Brand        bronze        52.7      1.64     5.97 Low Pick (Botto…
## 20        39 Teemo        bronze        52.7      1.7     24.1  Low Pick (Botto…

This table combines data for all five ranked tiers (Bronze → Diamond). It allows us to observe how champion performance shifts across the skill spectrum and enables comparisons that drive the analysis throughout the report.

Visualization 3: Top 1 Champion per Rank

top1 <- all_ranks_data %>%
group_by(rank_tier) %>%
slice_min(opgg_rank, n = 1) %>%
ungroup()


ggplot(top1, aes(x = rank_tier, y = win_rate, fill = rank_tier)) +
geom_col() +
geom_text(aes(label = champion), vjust = -0.5, fontface = "bold") +
labs(title = "Top Champion per Rank Tier (OP.GG)", y = "Win Rate (%)", x = "Rank Tier") +
theme_minimal()

This chart highlights the single highest‐ranked champion (according to OP.GG) within each rank tier. It summarizes which champions sit at the very top of their respective tiers, making it easy to see strong low-rank performers like Miss Fortune and other meta-defining picks across tiers.

Visualization 4: Top 3 per Rank by OP.GG Ranking

top3 <- all_ranks_data %>%
group_by(rank_tier) %>%
slice_min(opgg_rank, n = 3) %>%
ungroup()


ggplot(top3, aes(x = -opgg_rank, y = champion, fill = rank_tier)) +
geom_col() +
facet_wrap(~rank_tier, scales = "free_y") +
labs(title = "Top 3 Champions by OP.GG Ranking", x = "Ranking (1 = Best)", y = "Champion") +
theme_minimal()

This visualization displays the top 3 champions for each rank tier based on OP.GG’s internal ranking system. Unlike win rate alone, OP.GG’s rank ordering incorporates multiple factors—pick rate, consistency, and statistical stability—making this a more holistic view of champion strength.

This chart is especially valuable because it reveals how tier‐specific the meta truly is: a champion that dominates Bronze may not be equally strong in Diamond.

Overall, this visual shows that champion strength is highly dependent on player skill level, and it highlights the champions that consistently perform well within each rank.

Visualization 5: High Pick vs Low Pick Boxplot

ggplot(all_ranks_data, aes(x = pick_group, y = win_rate, fill = pick_group)) +
geom_boxplot() +
labs(title = "Win Rate Comparison: High Pick vs Low Pick Champions", x = "Pick Group", y = "Win Rate (%)") +
theme_minimal()

This boxplot compares win rates between the top 25% most‐picked champions and the bottom 25% least‐picked champions. Surprisingly, low‐pick champions tend to have higher win rates, suggesting that many popular champions may be overplayed even when not statistically strong, while niche champions perform better but are chosen less frequently.

This finding supports the hypothesis that popularity does not always align with performance.

Hypothesis Test

high <- all_ranks_data %>% filter(pick_group == "High Pick (Top 25%)") %>% pull(win_rate)
low <- all_ranks_data %>% filter(pick_group == "Low Pick (Bottom 25%)") %>% pull(win_rate)


t.test(high, low)
## 
##  Welch Two Sample t-test
## 
## data:  high and low
## t = -10.894, df = 117.77, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -1.931010 -1.336968
## sample estimates:
## mean of x mean of y 
##  50.92215  52.55614

Conclusion

This analysis showed that: - Miss Fortune is a consistently strong performer in lower ranks across OP.GG. - Champions like Teemo and Briar also show strong win rate dominance in certain tiers, especially where their playstyle aligns well with lower-rank tendencies. - High-pick champions tend to have lower win rates than low-pick champions. - The t-test confirmed that win rates differ significantly between high- and low-picked champions.

Overall, scraping and analyzing OP.GG data provided interesting insights into champion performance and player behavior in ranked League of Legends. It was a fun and informative way to explore the LoL ranked ecosystem through real-world data.