Click the Original, Code and Reconstruction tabs to read about the issues and how they were fixed.
Objective
Explain the objective of the original data visualization and the targeted audience.
Data can be used to create visually appealing representations that successfully convey information. However, certain visualisations, while appealing to the eye, fail to properly communicate the content to the intended audience. I found one such example on the internet. (See the list of reference below.) The chosen data visualisation example image depicts whether the content cop has an effect on the number of YouTube channel subscribers by channel. Users of YouTube videos and the authors who produce them are the intended audience for this unique data visualisation. The chosen visualisation had the following three major flaws:
The colour is too close to distinguish; the viewer’s line of sight would be distorted, and viewers may be unable to tell what each line represents. As a consequence, this visualization needs to employ more high-contrast colours to illustrate the variables.
For the graph selection issue, the large disparity between the data will group the images together. The shift trend of each variable cannot be readily distinguished using a standard line chart. We can use a line chart with dots to represent the trend, which will make the trend more evident.
In terms of the vertical coordinates issue, due to the extreme data of separate groups, the final image will be hazy. We can divide the original visualisation image into two trend graphs so that we can analyse it more thoroughly.
Reference
V. (2020, September 16). R/dataisbeautiful - [OC] The impact of Youtube series Content Cop (iDubbbz). Retrieved September 20, 2020, from https://www.reddit.com/r/dataisbeautiful/comments/ismbdu/oc_the_impact_of_youtube_series_content_cop/
The following code was used to fix the issues identified in the original.
library(ggplot2)
data<-read.csv("C:/Users/jeeth/Desktop/Data Visualization Critique/data.csv")
Jinx<-subset(data,data$Name=="Jinx")
FineBros<-subset(data,data$Name=="Fine Bros")
HowToPRANKItUp<-subset(data,data$Name=="HowToPRANKItUp")
Keemstar<-subset(data,data$Name=="Keemstar")
LeafyIsHere<-subset(data,data$Name=="LeafyIsHere")
Ricegum<-subset(data,data$Name=="Ricegum")
TanaMongeau<-subset(data,data$Name=="Tana Mongeau")
Jinx<-Jinx$Subs
FineBros<-FineBros$Subs
HowToPRANKItUp<-HowToPRANKItUp$Subs
Keemstar<-Keemstar$Subs
LeafyIsHere<-LeafyIsHere$Subs
Ricegum<-Ricegum$Subs
TanaMongeau<-TanaMongeau$Subs
re<-data.frame(Jinx[1:60],HowToPRANKItUp[1:60],Keemstar[1:60],
LeafyIsHere[1:60],Ricegum[1:60],TanaMongeau[1:60],FineBros[1:60])
matplot(re,type="o",pch=16:21,lty=1,bg="yellow",lwd=2,
xlab="Day (0 is 1 month before Content Cops release)",ylab="Change in Subscribers by Day",font=2,
font.lab=1.5,cex.lab=1,main="The impact of Content Cop",ylim = c(-30000,30000))
name<-c("Jinx","HowToPRANKItUp","Keemstar","LeafyIsHere","Ricegum","TanaMongeau","FineBros")
legend("bottomleft",pch=16:21,lty=1,merge=T,legend=name,col=1:6)
abline(v=30,lwd=2,col="red")
Data Reference
The following plot fixes the main issues in the original.