BAR CHART+LINE

Graph 2: Merchandise trade balance

You can find the data for this plot here or alternatively here is the dput data for balance:

structure(list(variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "Merchandize Trade Balance", class = "factor"), type = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = "Balance", class = "factor"), year = c(2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L, 2013L), value = c(-0.5, -1.5, -0.1, -0.4, -0.2, 0, 0.1, -0.1, -0.6, -0.2, -0.2, -1.3, 0), geo = structure(c(2L, 4L, 7L, 9L, 1L, 6L, 12L, 5L, 3L, 11L, 10L, 13L, 8L), .Label = c("CIS", "Dev. Asia Pacific", "Eastern Asia", "Europe", "Latin Am. And Carr.", "North Africa", "North America", "Oceania", "South Eastern Europe", "South-Eastern Asia", "Southern Asia", "Sub-Saharan Africa", "Western Asia"), class = "factor")), .Names = c("variable", "type", "year", "value", "geo"), class = "data.frame", row.names = c(NA, -13L))

library(dplyr) #to manipulate the dataset library(ggplot2) #plotting mer.bal <- mydt %>% filter(variable == "Merchandize Trade Balance") base <- mer.bal %>% filter(type != "Balance") %>% mutate( value = ifelse(type == "Exports", value, -value) ) balance <- mer.bal %>% filter(type == "Balance") ggplot(balance, aes(x = geo, y = value, fill=factor(type))) + geom_bar(data = base %>% filter(type=="Exports"), aes(col=type), stat = "identity") + geom_bar(data = base %>% filter(type=="Imports"), aes(col=type), stat = "identity") + geom_bar(data = balance, aes(col=type), stat = "identity", width=.2) + ggtitle(expression(atop("Merchandise trade balance", atop(italic("(Bln US$ by MDG Regions in 2013)"), "")))) + theme_bw()+ theme(axis.text.x = element_text(size=8, color="black"), axis.text.y = element_text(size=8, color="black"), legend.text=element_text(size=10), plot.title = element_text(size = 20, face = "bold", colour = "black", vjust = -1))+ scale_fill_manual(values = c(Exports = "#0072B2", Imports = "#56B4E9", Balance="red"), name="") + scale_colour_manual(values = c(Exports = "#0072B2", Imports = "#56B4E9", Balance="red"), name="") + coord_flip()+ labs(x = "", y = "")