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

Original


Source: Exceljet


Objective

The objective of this data visualization is to tell audience about quarterly sales in year 2016. The visualization represents the sales of product in 4 different directions/regions. We will focus on key three issues regarding this data visualization shown above and eventually will deconstruct and reconstruct the new visualization.

The key issue regarding this data visualization are:

  1. Labeling axis : Every charts/graph comes with axis and it represents value. Here, We are not able to identify what y-axis is trying to communicate. Indicating the values in bar in thousand and showing axis with percentage don’t gives a sign of good axis and can deceive the audience. So, this could be easily manipulated.

  2. Color Coding : The color used here indicates the dark to light blueish which should be used for sequential or diverging values but here, these are 4 different categorical values. Hence, there should be different colors either from bright palette or dark palette.

  3. Bar Chart : This visualization is showing 4 important sales information from different region and using stacked bar chart would never be recommended. Since, we also have time factor i,e quarter into consideration, line plot would be ideal. Also, the sum of the sales for each quarter are different, but the height of bar are same. This may cause perceptual issue as audience may find it difficult to compare the sales number with quarter or region. However, to reconstruct this chart, we will convert the stacked bar chart into multiple line plot.

Reference

Code

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

library(ggplot2)
library(readr)


data <- data.frame(Directions =rep(c("East", "West","North","South"), each=4),
                  Quarter =rep(c("Q1", "Q2", "Q3","Q4"),4),
                  value =c(32000, 45000,54000,46000, 46000,60000,58000,70000, 
                           48000,62000,55000,74000,42000,53000,47000,60000))

data_visual <- ggplot(data=data, aes(x=Quarter, y=value, group=Directions)) +
  geom_line(aes(color = Directions))+
  geom_point(aes(color = Directions), size = 2)+
  geom_text(aes(label = value), size = 2.3, vjust = 0.7, hjust = 1.2) + ylim(0, 75000) 

Data Reference

Reconstruction

The following plot fixes the main issues in the original.