Hi: I'm trying to plot dates on the x-axis of a code, but the legend is not being displayed. I receive the following error: Error in match.arg(x, c("bottomright", "bottom", "bottomleft", "left", : 'arg' should be one of bottomright, bottom, bottomleft, left, topleft, top, topright, right, center In addition: Warning message: longer object length is not a multiple of shorter object length in: arg == choices The problem is that I have more than one trend line, and the legend doesn't seem to work given that the x-axis is a date. I've searched prior help threads, but this issue hasn't come up. Any ideas? A sample code can be found below. date <- as.date(c("15-Jan-06","22-Jan-06","29-Jan-06","5-Feb-06","12-Feb-06","19-Feb- 06","26-Feb-06")) par(mfrow=c(2,1)) plot.date (date, int_median, main="Median Time to Receive Outcome Files, International and Domestic Centers Week", xlab="Week", ylim=c(15,35), ylab="Median Hours", type = "l",lwd =1, lty=1) lines (date, dom_median, type = "l", lwd = 2, lty=2) abline(h=24, lwd=2) name <- c("International", "Domestic") legend (c("29Jan6","5Feb6"),c(26,35), name, lwd=c(1,2), lty=c(1,2)) plot.date (date, int_mean, main="Mean Time to Receive Outcome Files, International and Domestic Centers Week", xlab="Week", ylim=c(15,35), ylab="Median Hours", type = "l",lwd =1, lty=1)lines (date, dom_mean, type = "l", lwd = 2, lty=2) abline(h=24, lwd=2) Thanks, Bryan L. Sykes Program Associate, Operations Research National Board of Medical Examiners bsykes at nbme.org
The argument to legend should be of class "date", not "character". Also please post reproducible code including definitions of all variables used and library calls. On 3/10/06, Bryan Sykes <BSykes at nbme.org> wrote:> Hi: > > I'm trying to plot dates on the x-axis of a code, but the legend is not being > displayed. I receive the following error: > > Error in match.arg(x, c("bottomright", "bottom", "bottomleft", "left", : > 'arg' should be one of bottomright, bottom, bottomleft, left, > topleft, top, topright, right, center > In addition: Warning message: > longer object length > is not a multiple of shorter object length in: arg == choices > > The problem is that I have more than one trend line, and the legend doesn't > seem to work given that the x-axis is a date. I've searched prior help > threads, but this issue hasn't come up. Any ideas? A sample code can be > found below. > > date <- > as.date(c("15-Jan-06","22-Jan-06","29-Jan-06","5-Feb-06","12-Feb-06","19-Feb- > 06","26-Feb-06")) > > par(mfrow=c(2,1)) > plot.date (date, int_median, main="Median Time to Receive Outcome Files, > International and Domestic Centers Week", xlab="Week", > ylim=c(15,35), ylab="Median Hours", type = "l",lwd =1, lty=1) > lines (date, dom_median, type = "l", lwd = 2, lty=2) > abline(h=24, lwd=2) > name <- c("International", "Domestic") > legend (c("29Jan6","5Feb6"),c(26,35), name, lwd=c(1,2), lty=c(1,2)) > > plot.date (date, int_mean, main="Mean Time to Receive Outcome Files, > International and Domestic Centers Week", xlab="Week", > ylim=c(15,35), ylab="Median Hours", type = "l",lwd =1, lty=1)lines > (date, dom_mean, type = "l", lwd = 2, lty=2) > abline(h=24, lwd=2) > > > Thanks, > > Bryan L. Sykes > Program Associate, Operations Research > National Board of Medical Examiners > bsykes at nbme.org > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html >
Hi Why plot.date? I wonder if plot() did not work too. Did not you get error with as.date? Probably as.Date was intended and formating forgotten. Legend requires some positioning from user's side and you can use either legend(xposition, yposition, legend="whatever you want to put here", ....) where xposition and yposition are usually numeric values see also ?xy.coords or legend("text of position", legend="whatever you want to put here", ....) where text of position is one of texts mentioned in error you have got. from help page ... The location may also be specified by setting x to a single keyword from the list "bottomright", "bottom", "bottomleft", "left", "topleft", "top", "topright", "right" and "center". This places the legend on the inside of the plot frame at the given location. Partial argument matching is used. The optional inset argument specifies how far the legend is inset from the plot margins. If a single value is given, it is used for both margins; if two values are given, the first is used for x- distance, the second for y-distance. ... HTH Petr On 10 Mar 2006 at 9:29, Bryan Sykes wrote: Date sent: Fri, 10 Mar 2006 09:29:49 -0500 From: "Bryan Sykes" <BSykes at NBME.org> To: <r-help at stat.math.ethz.ch> Subject: [R] Plot.date and legends> Hi: > > I'm trying to plot dates on the x-axis of a code, but the legend is > not being displayed. I receive the following error: > > Error in match.arg(x, c("bottomright", "bottom", "bottomleft", "left", > : > 'arg' should be one of bottomright, bottom, bottomleft, left, > topleft, top, topright, right, center In addition: Warning message: > longer object length > is not a multiple of shorter object length in: arg == choices > > The problem is that I have more than one trend line, and the legend > doesn't seem to work given that the x-axis is a date. I've searched > prior help threads, but this issue hasn't come up. Any ideas? A > sample code can be found below. > > date <- > as.Date(c("15-Jan-06","22-Jan-06","29-Jan-06","5-Feb-06","12-Feb-06"," > 19-Feb- 06","26-Feb-06")) > > par(mfrow=c(2,1)) > plot.date (date, int_median, main="Median Time to Receive Outcome > Files, > International and Domestic Centers Week", xlab="Week", > ylim=c(15,35), ylab="Median Hours", type = "l",lwd =1, > lty=1) > lines (date, dom_median, type = "l", lwd = 2, lty=2) > abline(h=24, lwd=2) > name <- c("International", "Domestic") > legend (c("29Jan6","5Feb6"),c(26,35), name, lwd=c(1,2), lty=c(1,2)) > > plot.date (date, int_mean, main="Mean Time to Receive Outcome Files, > International and Domestic Centers Week", xlab="Week", > ylim=c(15,35), ylab="Median Hours", type = "l",lwd =1, > lty=1)lines > (date, dom_mean, type = "l", lwd = 2, lty=2) > abline(h=24, lwd=2) > > > Thanks, > > Bryan L. Sykes > Program Associate, Operations Research > National Board of Medical Examiners > bsykes at nbme.org > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! > http://www.R-project.org/posting-guide.htmlPetr Pikal petr.pikal at precheza.cz