Laden...
Barplot in R
Barplots are a good choice to show frequencies of several groups. Also group means +/- standard deviation can be represented by means of the barplot()
-function easily.
Click here for a short step-by-step guide.
This graphic was created using the following code:
layout(matrix(c(1, 1, 1, 1, 2, 3, 3, 3), ncol = 2))
x <- seq(-20, 10, len = 200)
fn <- 705.87 + 1.201*x + -3.0554*x^2 + -0.10117*x^3
mat <- matrix(fn[-c(51:(51 + 25), (length(fn) - 50):length(fn))], ncol = 3)
y <- apply(mat, 2, mean)
e.bar <- apply(mat, 2, sd)
bp <- barplot(y, ylim = c(0, 800), col = c("palegreen3", "cornflowerblue", "indianred2"), names= c("group1", "group2", "control"), las = 1)
arrows(bp, y + e.bar, bp, y - e.bar, angle = 90, code = 3, col = 1, length = 0.1)
op <- par(mar = c(4, 0, 1, 3))
barplot(mat[1:4, 1:2], horiz = TRUE, col = rev(heat.colors(4)))
plot(1, 1, type = "n", ylim = c(0, 100), xlim = c(0.7 - 0.5, 3.1 + 0.5), axes = F, xlab = "", ylab = "")
polygon(c(0, 4, 4, 0), c(0, 0, 100, 100), col = "powderblue", border = "grey80")
barplot(e.bar, col = "white", axes = FALSE, add = TRUE)
barplot(e.bar, density = c(20, NA, 20), angle = c(45, 45, 135), col = c(1, "white", 1), axes = FALSE, add = TRUE, names = c("Delta01", "MediFun", "RaT-3z"))
for(i in seq(20, 80, 20)) abline(h = i, col = "grey60", lty = 2)
axis(4, las = 1)
par(op)