Click the Original, Code and Reconstruction tabs to read about the issues and how they were fixed.

Original

EPL_Visual

Objective

The objective of the original visualisation was to relay the vast disparity of accumelated wealth between the new owners of Newcastle United FC and the rest of the owners of each individual English Premier League club. The target audience being fans and stakeholders of the EPL (English Premier League) and its associates.

The visualisation chosen had the following three main issues:

  • The author has not used any data labels to support their visualisation. Without the use of data labels nor data points, the audience is unable to ascertain the narrative of the story and only those familiar with the English Premier League can begin to have a very basic understanding of what the author is trying to achieve

  • Though the use of colour coding was to signify the club’s colours, in this instance it was not used to great effect as many clubs share similar colours and therefore made it hard to differentiate between clubs when utilising this type of graph. Each fraction of the pie chart is representative of the club’s owner’s net worth however; as is evident, the smaller the fortune, the smaller the fraction and therefore; by the time we analyse the last few fractions, it’s impossible to glean any information

  • Lastly, by utilising a pie chart, the author is trying to infer quantity. Pie charts are inherently misleading as the human brain struggles to accurately read the comparative area of circles, and the thin slices are hard to discern and thus leads to misinformation and misinterpretation.

  • I have decided to include an additional field of all the teams combined besides Newcastle to really emphasise the disparity of wealth between Newcastle and the rest of the EPL.

Reference

Code

The following code was used to fix the issues identified in the original.

library(janitor)
library(purrr)
library(rvest)
library(tidyverse)
library(Rmpfr)
library(ggplot2)
library(scales)
options(scipen = 100)

url = "https://en.wikipedia.org/wiki/List_of_owners_of_English_football_clubs"
EPL_Owner_Net_Worth = read_html(url)
EPL_Owner_Net_Worth %>% 
  html_nodes(css = "table")
## {xml_nodeset (5)}
## [1] <table class="plainlinks metadata ambox mbox-small-left ambox-notice" rol ...
## [2] <table class="wikitable sortable"><tbody>\n<tr>\n<th>Club\n</th>\n<th>Own ...
## [3] <table class="wikitable sortable"><tbody>\n<tr>\n<th>Club\n</th>\n<th>Own ...
## [4] <table class="wikitable sortable"><tbody>\n<tr>\n<th>Club\n</th>\n<th>Own ...
## [5] <table class="wikitable sortable"><tbody>\n<tr>\n<th>Club\n</th>\n<th>Own ...
pop_table = 
  EPL_Owner_Net_Worth %>% 
  html_nodes(css = "table") %>% 
  nth(2) %>% 
  html_table(fill = TRUE)

colnames(pop_table) = c("Club","Owner","Owner Net Worth","Source of Wealth")

pop_table = 
  pop_table %>% 
  select(-`Source of Wealth`)

pop_table = 
  pop_table %>% 
  select(-'Owner')

pop_table$`Owner Net Worth` <- gsub("\\[.*]", "",pop_table$`Owner Net Worth`)

pop_table$Club <- gsub("(more information)", "",as.character(pop_table$Club))

pop_table$Club <-  gsub("\\s*\\([^\\)]+\\)","",as.character(pop_table$Club))

pop_table$Club <- gsub("\\[.()*", "",pop_table$Club)

Team <-c("Arsenal FC","Aston Villa", "Brentford FC", "Brighton & Hove Albion","Burnley FC","Chelsea FC","Crystal Palace","Everton","Leeds United","Leicester City","Liverpool FC","Manchester City","Manchester United","Newcastle United","Norwich City", "Southampton FC","Tottenham Hotspur","Watford FC","Westham United","Wolverhampton Wanderers")

Owner_Net_Worth <- c(10700000000,12700000000,3000000,1300000000,220000000,6900000000,5900000000, 2900000000, 4000000000, 2150000000,3600000000, 22000000000, 4700000000,580000000000, 30000000, 1000000000,5400000000,120000000,5600000000,8500500000)

pop_table <-data.frame(Team,Owner_Net_Worth, stringsAsFactors = FALSE)

paste('£',formatC(pop_table$Owner_Net_Worth,big.mark = ',',format = 'f'))
##  [1] "£ 10,700,000,000.0000"  "£ 12,700,000,000.0000"  "£ 3,000,000.0000"      
##  [4] "£ 1,300,000,000.0000"   "£ 220,000,000.0000"     "£ 6,900,000,000.0000"  
##  [7] "£ 5,900,000,000.0000"   "£ 2,900,000,000.0000"   "£ 4,000,000,000.0000"  
## [10] "£ 2,150,000,000.0000"   "£ 3,600,000,000.0000"   "£ 22,000,000,000.0000" 
## [13] "£ 4,700,000,000.0000"   "£ 580,000,000,000.0000" "£ 30,000,000.0000"     
## [16] "£ 1,000,000,000.0000"   "£ 5,400,000,000.0000"   "£ 120,000,000.0000"    
## [19] "£ 5,600,000,000.0000"   "£ 8,500,500,000.0000"
All_Other_Teams <- pop_table%>%slice_min(Owner_Net_Worth,n=19)

Sum_Others <- sum(All_Other_Teams$Owner_Net_Worth)

Sum_Others_Total <-c('All_Other_Teams', Sum_Others)

pop_table[nrow(pop_table)+1,] <- Sum_Others_Total

pop_table$Owner_Net_Worth <- as.numeric(as.character(pop_table$Owner_Net_Worth))

pop_table$DataLabels <- scales::label_number_si()(pop_table$Owner_Net_Worth)

ggplot(data = pop_table, mapping = aes
       (x=reorder(Team, Owner_Net_Worth),Owner_Net_Worth)
)+geom_bar(stat = "identity",fill = '#003366', color = '#add8e6')+scale_y_continuous(expand = c(0,0),labels = unit_format(unit = "B", scale= 1e-9))+
  labs(x="Team", y= "Owner Net Worth")+ coord_flip()+ggtitle("EPL Owners Net Worth (£)")+geom_text(aes(label = DataLabels), position = position_dodge(width = 0.5), vjust=0.4, hjust=-.2, size =3)+theme_classic()+ theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(), axis.line = element_line(colour = "black"))+theme(plot.title = element_text(hjust = 0.5))

Data Reference

Reconstruction

The following plot fixes the main issues in the original.