Figure 12-13: A Horizontal Barplot

Portfolio Categories: All Graphics and SGR Book Graphics.

A horizontal barplot of corruption scores

Barplot of Corruption Scores


# Read in data
myData = read.delim(file = "http://www.kktg.net/R/Chapter12Data.txt",
  colClasses = c("character", "numeric", "numeric", "numeric"), header = T)

# Create categorical versions of the dem/polity data
myData$dem = 
  ifelse(myData$P4 > 7, 1, 0)          # Dem if Polity >7    
myData$corrupt = 
  ifelse(myData$CPI < 4, 1, 0)         # Corrupt if CPI<4
myData$cGDPk = myData$cGDP/1000        # Per capita GDP in 1000s

# Remove all observations with missing data
myData = myData[!is.na(myData$CPI) & !is.na(myData$P4),]

CPIbreaks = cut(myData$CPI, 
  breaks = 5)                          # Create factor with P4 in 5 bins
newCPI = tapply(myData$CPI,            # Create vector of bar heights
  CPIbreaks,                           #  based on the bins we created       
  length)                              #  count number of obs in each bin

png(filename = "illustrations/fig-12-13-barplot2.png",
  units = "in",                        # Set measurements in inches
  res = 1200,                          # Set resolution at 1200dpi
  width = 6,                           # Width at 6 inches
  height = 4)                          # Height at 4 inches
                                       
par(mai = c(.5, 1, .25, .25))          # Change margins for png graphs

barplot(newCPI,                        # Create a barplot
  horiz = T,                           # Rotate to horizontal
  ylab = "CPI Corruption Score")       # Add y-axis label

dev.off()                              # Output png file