India – World-cup 2019 Squad Statistical Viz.

A step in the direction of learning data visualization – a simple and intuitive project

How well has Kohli performed recently? Is the Indian pace attack ready for the English pitches? Who will be chosen to fill the no. 4 slot in the team? How has Bhuvi’s economy been? Can Kedar Jadhav be trusted as an additional spinner?

Few of the many questions that pop up in a cricket enthusiasts mind given the fact that the world-cup is round the corner.

As I read through the article that revealed the players picked in the squad, I typed in ESPN CricInfo URL to look through the player statistics. As I browsed through these players’ numbers I felt the need to intuitively compile all this info in one place. Employing simple functionalities that enable be to browse through a players stats just by hovering over their name with an additional feature of viewing how these players compare with each other.

To that end I decided to compile this information, however, I hit a roadblock since this information was scattered and needed to be compiled in one dataset.

I deployed a web-scraper using R’s rvest library.

install.packages('xml2')
library("rvest")
url <- "http://stats.espncricinfo.com/ci/engine/records/averages/batting.html?class=2;id=6;type=team"


population_ind <- url %>%
  html() %>%
  html_nodes(xpath='//*[@id="ciHomeContentlhs"]/div[3]/div/table[1]') %>%
  html_table()
population_ind <- population_ind[[1]]
head(population_ind)
write.csv(population_ind,'cricketers_ind.csv')


url <- "http://stats.espncricinfo.com/ci/engine/records/averages/bowling.html?class=2;current=2;id=6;type=team"


population_bowl <- url %>%
  html() %>%
  html_nodes(xpath='//*[@id="ciHomeContentlhs"]/div[3]/div/table[1]') %>%
  html_table()
population_bowl <- population_bowl[[1]]
head(population_bowl)
write.csv(population_bowl,'cricketers_bowl.csv')


url <- "http://stats.espncricinfo.com/ci/engine/records/team/series_results.html?class=2;id=6;type=team"


population_team <- url %>%
  html() %>%
  html_nodes(xpath='//*[@id="ciHomeContentlhs"]/div[3]/div/table[1]') %>%
  html_table()
population_team <- population_team[[1]]
head(population_team)
write.csv(population_team,'cricketers_team.csv')

The resultant datasets needed to be combined. I decided to use Tableau Prep for the same. A decision to use Tableau Prep over R to clean and combine datasets was made since Tableau provides a better visual rendition of the process.

Here is an excerpt from the dashboard I created –

  1. Batting Statistics

Bowling Statistics

Data Source : http://stats.espncricinfo.com/ci/engine/records/index.html

Entire dashboard can be found on my Tableau Public Profile : https://public.tableau.com/profile/viraj1076#!/

Technology Used : R (rvest) | Tableau Prep | Tableau Desktop 2019 |

2 comments

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s