I used the following code to create barplots for the summaries of the decomposition models.

mat<-matrix(c(24.6, 22.4,0.4,0.0,21.8,22.4,0.2,-0.3,28.8,23.0,9.9,0.5,52.6,30.5,25.4,0.8,30.7,23.9,5.0,0.2,16.8,40.2,6.1,-1.5), nrow=4, ncol=6, byrow=F) 
rownames(mat) <- c("Relative Resources", "Time Availabity", "Autonomy", "Gender-centred Framework")
colnames(mat) <- c("All", "Anglo", "French", "Chinese", "SA", "Filipino")
barplot(mat, beside=TRUE, ylim=c(-1,60), col=1, lwd=1:2, angle=c(45,0,45,0), density=seq(10,30,15))
barplot(mat, add=TRUE, ylim=c(-1,60), ylab="Percent of the Gender Gap Explained", main = "Percent of The Gender Gap Explained", beside=TRUE, col=1, lwd=1:2, angle=c(45, 0, 135, 90), density=seq(10,30,15))
mtext("Time Spent on Cleaning, Canada", side=3)
for(i in 1:length(as.vector(mat))){
    if(i<5){
        text(i+0.5, as.vector(mat)[i]+0.2, pos=3, cex=0.6, labels=as.vector(mat)[i])
    } else if (i>=5 & i<9){
        text(i+1.5, as.vector(mat)[i]+0.2, pos=3, cex=0.6, labels=as.vector(mat)[i])
    } else if (i>=9 & i<13){
        text(i+2.5, as.vector(mat)[i]+0.2, pos=3, cex=0.6, labels=as.vector(mat)[i])
    } else if (i>=13 & i<17){
        text(i+3.5, as.vector(mat)[i]+0.2, pos=3, cex=0.6, labels=as.vector(mat)[i])
    } else if (i>=17 & i<21){
        text(i+4.5, as.vector(mat)[i]+0.2, pos=3, cex=0.6, labels=as.vector(mat)[i])
    } else {
        text(i+5.5, as.vector(mat)[i]+0.2, pos=3, cex=0.6, labels=as.vector(mat)[i])
    }
}
par(xpd=TRUE)
legend(-2, -15, legend=rownames(mat), text.width=c(0,6.4,5.8,5),
       ncol=4, fill=TRUE, cex = 0.8, bty='n',
       col=1, angle=c(45,0,45,0), density=seq(10,30,15))
legend(-2, -15, legend=rownames(mat), text.width=c(0,6.4,5.8,5),
       ncol=4, fill=TRUE, cex = 0.8, bty='n', 
       col=1, angle=c(45, 0, 135, 90), density=seq(10,30,15))