Original


Source: The Top 100 most valuable Brands in the World (2020).


Objective

This Packed circle visualization gives us an idea about the market valuation of top brands in 2020. The valuation is measured in billion dollars where the smallest circle represents $10B, the next bigger circle represents $50B, and the next $100B, and finally the biggest circle representing $200B. This visualization categorizes the companies by the respective continents they belong to and their respective industrial fields they operate in. I believe that the purpose of this visualization was to give us an understanding of the worth of the major brands and how all these brands are concentrated in only three major parts of the world. Along with that it could also serve as an aid to the management of these companies to gauge the performance of their brands.

Target Audience

The target audience for this visualization is likely to be the people who wish to invest in stocks and would want to know which company’s valuation is strong and is likely to give them more profits on their investments. It could also be targeted at the general public who would want get an idea about how big their favourite brands are.

The visualization chosen had the following three main issues:

  • Incomplete Information: We can clearly make out that the valuation of only the top 15 brands is shown in the visualization while the values for the remaining brands has not been mentioned. This proves to be an inconvenience to the viewer who would want to know the exact value for a particular brand. Apart from the valuation the visualization also fails to mention the names of the brands next to the circle and instead only uses their logos which are quite small and difficult to read. For example in the circle of Asia there are several brands logos which are difficult to interpret like Asia Life’s logo. This may lead to the viewer not being able to recognize the brands and hence failing to get any information for it.

  • Visual Bombardment: At first glance this visualization can seem to be quite overwhelming to the viewer. It feels that too much of information has been squished into it which makes it appear to be crowded and difficult to differentiate the data points from one another. In some circles as mentioned above, the author has only displayed the logos of the brands while in some, he has tried to fit in the brand logo and name together into one circle which makes it seem to be cluttered. Hyundai, Huawei, Mitsubishi are examples of such cluttered circles. Both these cases may lead to confusion among the viewers.

  • Poor Scaling and Deception: This packed circle chart uses different sizes of circles to visualize the valuations of brands which can be deceptive to the naked eye as the circles appear to be similar. Also the difference in the scaling can be misleading to the viewer. For example, The Home Depot has a valuation of $50B and hence according to the scales it is represented using a smaller cirlce while the Bank of Asia has a valuation of $51B and is represented using a circle bigger than the Home Depot one. The difference between the valuation of both the brands is very small but still one of them has been depicted in a bigger circle because of the scales. This, coupled with the absence of the values next to the circle might lead the viewer to draw unnecessary conclusions from the chart.

Reference

Code

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

#Importing the packages
library(dplyr)
library(ggplot2)
library(readxl)

#Reading the excel file into r
brand2020 <- read_xlsx("C:/Users/adnan/Desktop/Brand2020.xlsx", col_names = TRUE)
head(brand2020)
## # A tibble: 6 x 5
##   Ranking Brand     Value Continent     Sector 
##   <chr>   <chr>     <dbl> <chr>         <chr>  
## 1 #1      Amazon      220 North America Retail 
## 2 #2      Google      188 North America Tech   
## 3 #3      Apple       140 North America Tech   
## 4 #4      Microsoft   117 North America Tech   
## 5 #5      Samsung      94 Asia          Tech   
## 6 #6      ICBC         80 Asia          Banking
#Plotting the graph
p1 <- ggplot(data = brand2020, aes(reorder(Brand,Value), Value, fill = Sector))+
  geom_bar(stat = "identity", colour = "black", width = 0.7)+ coord_flip() +
  facet_wrap(Continent~., scales = "free_y") +
  scale_y_continuous(breaks=seq(0,220,by=20)) +
  
  #Using Colour Blind Friendly colours
  scale_fill_manual(values = c("#E5F5F9", "#1D91C0", "#FC9272", "#DF65B0", "#CB181D" ,"#A0FF33" 
                               ,"#FCFF33", "#A6CEE3" ,"#FD8D3C", "#229954",
                                "#D4B9DA", "#6A51A3", "#566573", "#33FFDC", "#FFF7BC", "#000000" 
                               ,"#67001F", "#AE017E", "#F7F7F7", "#FFA500",
                               "#E733FF", "#7D6608", "#C7E9B4")) +
  
  #Setting the labels for the bars
  geom_text(aes(label = paste("$",`Value`,"B")),  size=3, 
            hjust=-0.1,check_overlap = TRUE,
            position = position_dodge(0.2), 
            color = "Dark Blue", fontface="plain")+
  
  #Setting the title and axis labels for the plot
  labs(title = "The Top 100 Most Valuable Brands in 2020",
       subtitle = "Companies by Brand Valuation around the World\n",
       x = "Companies and their ranks\n",
       y = "\nTheir Brand Value in Billion dollars",
       fill = "Industry",
       caption = "Source: https://howmuch.net/articles/top-100-most-valuable-brands-2020") +
  
  #Setting the theme of the plot
  theme(title = element_text(size = 18, hjust = 0.5,vjust = 1, face = "bold"),
        axis.text.y = element_text(size = 10, face = "bold"),
        axis.text.x = element_text(size = 10, face = "bold"),
        axis.title.x = element_text(size = 16, hjust = 0.5, vjust = 1),
        axis.title.y = element_text(size = 16, hjust = 0.5, vjust = 1),
        plot.caption = element_text(size = 12, hjust = 0.5, vjust = 0, face = "plain"),
        panel.background = element_rect(fill = "#F2F3F4"),
        panel.grid.major = element_line(size = 0.5, linetype = "solid", colour = "white"),
        panel.grid.minor = element_line(size = 0.5, linetype = "solid", colour = "white"),
        text=element_text(family="Georgia"),
        strip.text.x = element_text(size = 12, face = "bold", colour = "Black"),
        strip.background = element_rect(fill = "#CACFD2"),
        legend.position = "top",
        legend.box.just = "right",
        legend.margin = margin(8, 8, 8, 8),
        legend.background = element_rect(fill = "#F2F3F4"),  
        legend.box = "horizontal",
        legend.direction = "horizontal",
        legend.box.background = element_rect(colour = "black",size = 1),
        legend.text = element_text(family = "Georgia", size = 10, face = "bold"))

Data Reference

Reconstruction

The following plot fixes the main issues in the original.