Skip to content
Prev 301759 / 398503 Next

barplot question

Hello,

Try the following.


plants_herbs_input_top10 <- structure(list(total = c(28L, 17L, 11L, 6L, 
6L, 5L, 4L, 3L, 3L,
2L), young = c(29L, 22L, 15L, 8L, 5L, 3L, 2L, 2L, 2L, 2L), old = c(36L,
11L, 11L, 8L, 6L, 5L, 4L, 3L, 2L, 2L)), .Names = c("total", "young",
"old"), class = "data.frame", row.names = c(NA, -10L))

# Keep the return value, we'll need it later
# to know where to place the bars names
bp <- barplot(data.matrix(plants_herbs_input_top10),
     width = 1,
     ylim = c(0,50),
     xaxt = "n",
       space = c(0.2, 1.0),   #------> this has changed
     ylab = "Relative frequencies (%)",
     beside = TRUE,
       col = rep(c("black", "chartreuse1", "chartreuse4"), each=10),
     cex.names = 0.8)       #------> this has changed
#------> line below commented out
#    names.arg = rep(as.character(1), 3))
text(as.vector(bp), y = -1, labels = rep(1:10, 3), xpd = TRUE)

legend.width <- max(strwidth(c("Total", "Young secondary forest","Old 
secondary forest")))

legend("topright",
     c("Total", "Young secondary forest","Old secondary forest"),
     cex=0.9, pt.cex=1, pch=15, y.intersp=0.8,
     text.width = legend.width/2,      #------> this was added
     col=c("black","chartreuse1","chartreuse4"))


Hope this helps,

Rui Barradas

Em 30-07-2012 11:46, Michael Eisenring escreveu: