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

Original


Source: V. (2020, September 16). R/dataisbeautiful.


Objective

Explain the objective of the original data visualisation and the targetted audience.

This data visualization image shows whether the content cop has an impact on the number of subscribers by channel of Youtube. The targetted audience of this origianl daya visualisation is users of youtube videos and the authors who publish them The visualisation chosen had the following three main issues:

  • The color is too close to distinguish, it will disturb the viewer’s line of sight and cannot distinguish what each line represents.So we need to use more contrast colors to show the variables
  • For the problem of graph selection, the huge difference between the data will make the images all together. Choosing the ordinary line chart can not clearly distinguish the change trend of each variable.To show the trend, we can choose a line chart with dots, which will make the trend more obvious.
  • As for the problem of vertical coordinates, the final image will not be clear due to the extreme data of individual groups.We can split the original visualization image into two trend graphs, so that we can see the trend of extreme variables more intuitively and clearly, and avoid all trends being concentrated in the same graph.

Reference

Code

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

library(ggplot2)
data<-read.csv("~/Downloads/contentcop_v2.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])
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")
legend("bottomleft",pch=16:21,lty=1,merge=T,legend=name,col=1:6)
abline(v=30,lwd=2,col="red")
re<-data.frame(FineBros[1:60])
matplot(re,type="o",pch=16,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(-150000,50000))
name<-c("FineBros")
legend("bottomleft",pch=16,lty=1,merge=T,legend=name,col=1)
abline(v=30,lwd=2,col="red")

Data Reference

Reconstruction

The following plot fixes the main issues in the original.