Hello,
I plot box plot, and add a point to the box indicating mean. I also add some
range to the box width. I want to add legend for both the range (line) and
mean (point). However, I cannot add line legend and point legend together.
The code looks like the following.
(1) First, I tried the following code, however, it plot a line across the
point legend("*").
boxplot(count ~ spray, data = InsectSprays)
rb <- boxplot(decrease ~ treatment, data = OrchardSprays,
col="lightgrey")
title("Comparing boxplot()s and non-robust mean +/- SD")
mn.t <- tapply(OrchardSprays$decrease, OrchardSprays$treatment, mean)
xi <- seq(rb$n)
points(xi, mn.t, col = "blue", pch = "*")
h1 <- abline(h=110, col="red")
h2 <- abline(h=0, col="red", lty="dotted")
legend("topleft", c("110", "0", "mean"),
lty = c("solid","dotted"), pch = c(" ",
" ", "*"),
col = c("red","red", "blue"),lwd = c(1,1))
(2) I then tried the following
legend("topleft", c("110", "0", "mean"),
lty = c("solid","dotted"," "), pch =
c(" ", " ", "*"),
col = c("red","red", "blue"),lwd = c(1,1))
It returns error as lty cannot be " ".
Error in segments(x1, y1, x2, y2, ...) : invalid line type: must be length
2, 4, 6 or 8
Can anyone help me out? Thank you.
Shiguo
--
Department of Geography
The Ohio State University
1036 Derby Hall
154 N Oval Mall
Columbus, OH 43210
http://www.geography.osu.edu/grads/sjiang
[[alternative HTML version deleted]]
On 11-02-10 3:56 PM, Shiguo Jiang wrote:> Hello, > > I plot box plot, and add a point to the box indicating mean. I also add some > range to the box width. I want to add legend for both the range (line) and > mean (point). However, I cannot add line legend and point legend together. > The code looks like the following.Use NA for the lty in the ones with no lines or for the pch in the ones with no points. Duncan Murdoch> > (1) First, I tried the following code, however, it plot a line across the > point legend("*"). > > boxplot(count ~ spray, data = InsectSprays) > > rb<- boxplot(decrease ~ treatment, data = OrchardSprays, col="lightgrey") > title("Comparing boxplot()s and non-robust mean +/- SD") > > mn.t<- tapply(OrchardSprays$decrease, OrchardSprays$treatment, mean) > xi<- seq(rb$n) > points(xi, mn.t, col = "blue", pch = "*") > > h1<- abline(h=110, col="red") > h2<- abline(h=0, col="red", lty="dotted") > > legend("topleft", c("110", "0", "mean"), > lty = c("solid","dotted"), pch = c(" ", " ", "*"), > col = c("red","red", "blue"),lwd = c(1,1)) > > > > (2) I then tried the following > > legend("topleft", c("110", "0", "mean"), > lty = c("solid","dotted"," "), pch = c(" ", " ", "*"), > col = c("red","red", "blue"),lwd = c(1,1)) > > > It returns error as lty cannot be " ". > > Error in segments(x1, y1, x2, y2, ...) : invalid line type: must be length > 2, 4, 6 or 8 > > > Can anyone help me out? Thank you. > > Shiguo >