# [R] lines(aline, type = 'b', col = "blue) does not work for POSIXct plot.

Prof Brian Ripley ripley at stats.ox.ac.uk
Sun May 11 21:20:52 CEST 2003

On Sun, 11 May 2003, John Jaynes wrote:

> x <- ISOdate(2003, 4, 1:30)           # POSIXct vector
> y <-c(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30)
> aline <- c(30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1)
> plot(x, y, xaxt = 'n', main = 'Number of Stuff for the Project, April 2003', xlab = 'Report Time', ylab = 'Number of Stuff', type = "b", col =  "purple")
> axis.POSIXct(1, x)
> lines(aline, type = "b", col = "blue")
>
> These commands only produce one plot line on the resulting graph.
> Similar commands without the POSIXct lines generate the expected
> additional line on the plot, using the "lines" command. Any help on
> producing this additional line, while using POSIXct modifiers, will be
> greatly appreciated, as I have yet to find a book on this Very
> interesting R Language, that would answer such useful minutiae.

What do you expect lines(aline) to do?  As the help page says

Arguments:

x, y: coordinate vectors of points to join.

and you seem to have ignored the need to specify `x'!  If you had, it
would have worked.

lines(x, aline, type = "b", col = "blue")  # works as documented

You can hardly expect a book to tell you that you have failed to RTFM, but
several would not have led you to believe (incorrectly) that

> Similar commands without the POSIXct lines generate the expected
> additional line on the plot, using the "lines" command.

BTW, 1:30 and 30:1 are in R for a purpose and would make your example both
easier to understand and easier to reproduce (since you didn't wrap your
lines either: that's a piece of netiquette to bear in mind).

BDR

--
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595