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

Original


Source: Magic Quadrant for Business Intelligence Platforms (2010).


Objective

Objective: Understand how customers utilize Business Intelligence (BI) tools for different functions. It used a stacked bar chart to present the results collected from Gartner’s customer surveys (“Gartner Evaluates Leading Vendors for Analysis & Business Intelligence”, n.d.).

Target audience: Major BI vendors – to evaluate customer satisfaction.

The visualisation chosen had the following three main issues:
(i) Difficult to compare the percentages that make up each segment (apart from first segment) as they are not aligned on a common baseline - despite a stacked bar chart making it easier to compare the sum of all categories.
(ii) Poor selection of colours – a diverging color scheme should not be used to represent categorical data.
(iii) Difficult to understand without labels, especially with similarly sized segments and become visually complex as many categories are added.

Reference

Code

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

library(dplyr)
library(ggplot2)

df<-read.csv(("stackbardata.csv"),header = TRUE,sep = ",",check.names = FALSE)
head(df)
##    Vendor                               Data Pctg
## 1 Actuate          Static management reports   41
## 2 Actuate            Personalized dashboards    8
## 3 Actuate              Parameterized reports   43
## 4 Actuate             Simple ad hoc analysis   19
## 5 Actuate Moderately complex ad hoc analysis   12
## 6 Actuate            Complex ad hoc analysis    8
df$Vendor<-df$Vendor%>%factor(levels = c('Tibco','Targit','Tableau','SAS','SAP','Qliktech','Panorama','Oracle','MicroStrategy','Microsoft','LogiXML','Jaspersoft','Information Builders','Infor','IDS Scheer','IBM','Board','ArcPlan','Actuate'),
                               labels = c('Tibco','Targit','Tableau','SAS','SAP','Qliktech','Panorama','Oracle','MicroStrategy','Microsoft','LogiXML','Jaspersoft','Information Builders','Infor','IDS Scheer','IBM','Board','ArcPlan','Actuate'),
                              ordered = FALSE)

p1<-ggplot(df,aes(x=Vendor,y=Pctg,fill=Data))+
    geom_bar(stat="identity")+
    scale_fill_manual(values = c("#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#fddaec","#e5d8bd","#dbf0f0"))+
    facet_wrap(~Data,ncol = 4,nrow = 2)+
    labs(x=NULL, y="Percentage of Users",title="How BI Customers Use Their Platforms",
         caption = "Source: Surveys of Vendors' Customers Showcased in Gartner's Reports")+
    geom_text( aes( label = paste0( Pctg, "%" ), y = Pctg ),
               position = position_dodge(width = 1), hjust = 0.5,size = 3, color = "black")+
    theme(legend.position="none",
          panel.grid.major = element_blank(), 
          panel.grid.minor = element_blank(),
          panel.background = element_blank(),
          plot.background = element_rect(fill = "#ffffff"),
          axis.ticks = element_blank(),
          axis.text.x = element_blank(),
          strip.background = element_blank(),
          strip.text.x = element_text(face = "bold"),
          plot.caption = element_text(color = "#696969"))+
        coord_flip()

Data Reference

Reconstruction

The following plot fixes the main issues in the original.