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

Original


Source: L&T Financial Statement FY22.


Objective

The main objective of this data visualization is to explain about the Total revenue breakup by each department in Larson & Toubro collected in the financial year 2022. The percentage in the visualization in each department represents the contribution of each sector for the revenue.

Target Audience

Since the data is available on their webpage and it’s publicly available to everyone, the target audience can be general public and research professionals.

The visualization chosen had the following three main issues:

  • Issue 1: Data Integrity - The actual source of the data is unknown. The data visualization shows that it is from L&T Financial report FY22 but when searched in L&T website, data is not matching with this visualization. The visualization has a note that this has been created before the separation of the sectors in L&T. So, this visualization might not be more related to the current reality of the industry.

  • Issue 2: Scaling errors - Infrastructure Business section has 47% contribution but when visualized it is not even one fourth the area of the pie chart. IT Technology and Hydrocarbon has 7% difference but still looks similar. The whole scaling of this pie chart doesn’t make any sense as sectors has different contribution but visualized with same area space in pie chart.

  • Issue 3: Perceptual and color issues - Hydrocarbon and Heavy Engineering share the same color without any reason. Development project and Hydrocarbon looks like inverted and hard to read it. Logos have been used except for Heavy Engineering and Other.

Reference

Code

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

##Importing libraries

library(dplyr)
library(magrittr)
library(readxl)
library(tidyr)
library(ggplot2)


#loading the data
df <- read_xlsx("L&T_FY22.xlsx")

# Calculate total revenue for all sectors
total_revenue <- sum(df$Revenue_Contribution)

# Create new variable with percentage of revenue for each sector
df <- df %>% 
  mutate(percentage_revenue = round((Revenue_Contribution/total_revenue) * 100, 2))

p1 <- ggplot(data = df, aes(x = Sectors,y = percentage_revenue))
p1 <- p1 + geom_bar(stat = "identity", color="skyblue", fill="steelblue") + 
  geom_text(aes(label = paste0(percentage_revenue, "%")), 
            nudge_y = 2.5, nudge_x = 0.05) + 
  labs(title = "L&T industry total revenue contribution by sector on FY21-22",
       x = "Sector",
       y = "Revenue %") + 
  theme_minimal() + 
  scale_y_continuous(limits = c(0, 100)) +
  theme(axis.text.x = element_text(angle = 20, hjust = 1, vjust = 0.5))

Data Reference

Reconstruction

The following plot fixes the main issues in the original.