Change update for new versions (2017)
library(tidyr) library(ggplot2) dat.g <- gather(dat, type, value, -country) ggplot(dat.g, aes(type, value)) + geom_bar(aes(fill = country), stat = "identity", position = "dodge")

Original answer
dat <- data.frame(country=c('USA','Brazil','Ghana','England','Australia'), Stabbing=c(15,10,9,6,7), Accidents=c(20,25,21,28,15), Suicide=c(3,10,7,8,6)) dat.m <- melt(dat, id.vars='country')
I assume this is the format you need?
ggplot(dat.m, aes(variable, value)) + geom_bar(aes(fill = country), position = "dodge")

source share