Objective
Target Audience - The target audience to view this visualization is other brands who want to know the net worth of their competitor and educated readers who want to study more about these brands and their values and want to make comparison with it but will find it difficult because of the map used which is too fancy.
Objective - The objective of this data visualization is to highlight which brands are the top most brands in the world and their brand value.
The visualization chosen had the following three main issues:
Visual Choice: The data is plotted in a kaleidoscopic view which makes it difficult to read all the top 100 brands. Measurement of the brand value cannot be done easily due to the circular format in which it is represented. All the brands aren’t labeled with their brand value which makes it tough for users to know directly what exactly the brand value is.
Visual Bombardment: In this visualization, they have plotted 100 valuable brands trying to sho all the information in one chart. Most of the brands at the bottom half range between $17-30B and their size of the circle will be very small for the user to read the brand names on the chart. We can overcome this by plotting only top 30 or 40 brands so that the data that we are displaying to the user is well understandable and not tough to read.
Area and size: As we can see that the smaller brands ar every difficult to read as some of them dont have labels to it and logo isn’t seen clearly. While doing this, they have not considered about the bottom 50 brands as their brand value is significantly lesser and on the chart they look too tiny to even read the brand names. For example, brands like YouTube and Coca-Cola have a difference of $7B, but on chart both have the same circle radius. This can be easily done in bar graph to reduce the efforts taken by the user to read the data.
Reference
The following code was used to fix the issues identified in the original.
#Importing packages
library(ggplot2)
library(readr)
library(dplyr)
#Importing dataset
brand_ranking <- read_csv("D:/Semester 3/Data Visualization/Assignment/assignment 2/brandirectory-ranking-data-global-2020.csv")
#View(brand_ranking)
#Selecting only the required columns and rows
brand_ranking <- brand_ranking[c(1:30),c(1,2,4)]
#Converting brand value column from character to numeric
brand_ranking$`Brand Value ($M)` <- as.numeric(as.character(brand_ranking$`Brand Value ($M)`))
#Dividing brand value by 100
brand_ranking1 <- brand_ranking %>% mutate(new_value = `Brand Value ($M)`/1000)
#Plotting the graph
Brand_value_plot<-ggplot(data=brand_ranking1, aes(x=reorder(Brand,new_value) , y=new_value, label= new_value)) +
ylim(0,250)+
geom_bar(stat="identity",position="dodge",width =1 , color = "black",fill = "lightblue") +
labs(title = "TOP MOST VALUABLE BRANDS IN THE WORLD (2020)",
y = "Brand Value in Billion ",
x = "Brand") +
theme_minimal() +
geom_text(hjust = -0.1, size = 2.8)
theme(axis.text.x = element_text(face="bold", size=12),
axis.text.y = element_text(face="bold", size=7.8))
## List of 2
## $ axis.text.x:List of 11
## ..$ family : NULL
## ..$ face : chr "bold"
## ..$ colour : NULL
## ..$ size : num 12
## ..$ hjust : NULL
## ..$ vjust : NULL
## ..$ angle : NULL
## ..$ lineheight : NULL
## ..$ margin : NULL
## ..$ debug : NULL
## ..$ inherit.blank: logi FALSE
## ..- attr(*, "class")= chr [1:2] "element_text" "element"
## $ axis.text.y:List of 11
## ..$ family : NULL
## ..$ face : chr "bold"
## ..$ colour : NULL
## ..$ size : num 7.8
## ..$ hjust : NULL
## ..$ vjust : NULL
## ..$ angle : NULL
## ..$ lineheight : NULL
## ..$ margin : NULL
## ..$ debug : NULL
## ..$ inherit.blank: logi FALSE
## ..- attr(*, "class")= chr [1:2] "element_text" "element"
## - attr(*, "class")= chr [1:2] "theme" "gg"
## - attr(*, "complete")= logi FALSE
## - attr(*, "validate")= logi TRUE
Data Reference
The following plot fixes the main issues in the original.