On Sep 9, 2013, at 12:27 PM, Cech, Christian wrote:

>>> On Sep 9, 2013, at 9:00 AM, Cech, Christian wrote:
>>> 
>>>> Dear all,
>>>> 
>>>> I want to create a line-plot with two lines and some additional 
>>>> scatter-plots.
>>>> However, adding a line to the plot does not work when I specify the 
>>>> y-argument in the plot command, while it does work when y is not specified.
>>>> 
>>>> I first send you an example that works:
>>>> plot(var[, 3],
>>>>   type="l",
>>>>   ylim=c(-0.04, 0),
>>>>   ylab   = 'portfolio returns',
>>>>   xlab   = 'time')
>>>> lines(var[, 5], type="l", lty=3)
>>>> for (i in 1:nrow(var)) {
>>>> if(var[i, 4] | var[i,6])
>>>>  points(i, var[i, 2], pch=4)
>>>> }
>>>> 
>>>> --> the result is displayed in attachment "Plot1.pdf"
>>>> 
>>>> What does not work is the following code, where as the first argument of 
>>>> plot (ie the y-argument) is defined:
>>>> plot(as.Date(var[, 1], origin="1899-12-30"),
>>>>   var[, 3],
>>>>   type="l",
>>>>   ylim=c(-0.04, 0),
>>>>   ylab='portfolio returns',
>>>>   xlab='time')
>>>> lines(var[, 5], type="l", lty=3)
>>>> for (i in 1:nrow(var)) {
>>>> if(var[i, 4] | var[i,6])
>>>>  points(i, var[i, 2], pch=4)
>>>> }
>>>> 
>>>> --> the result is displayed in attachment "Plot2.pdf"
>>>> 
>>>> The same problem appears if instead of
>>>> 
>>>> as.Date(var[, 1], origin="1899-12-30")
>>>> 
>>>> I use
>>>> 
>>>> var[, 1]
>>>> 
>>>> to define the y-argument.
>>> 
>>> This puzzles me. At the moment yu are using postional matching and it is 
>>> var[,3] that would be matched to the y argument.
>>> 
>>> You need to post output of str(var) so that we can see the class of var[,1].
>>> 
>>> 
> 
>> Dear David,
>> 
>> thank you for the quick reply! Unfortunately I confused you because I mixed 
>> up y-value and x-value. What I actually wanted to say is that the plot does 
>> not work when x is specified (2nd example) while it does work if x is not 
>> specified (1st example). Sorry for this!
>> y = var[, 3]
>> x = var[, 1]
>> 
>> When I type str(var) i get the following output:
>> num [1:4747, 1:6] 33450 33451 33452 33455 33456 ...
>> 
>> Is that the information you needed?
> 
> Maybe. 'var' is  a numeric matrix which may not be what you think it was if 
> it started out life as having dates. (On this list it is requested that you 
> post in context which means bottom posting in many cases. So I moved your 
> reply.)
> 
> When you apply the as.Date function with an origin, you will get an different 
> number as the internal representation of the Date value than what you put in:
> 
> as.numeric(as.Date(c(33450, 33451, 33452, 33455, 33456), origin="1899-01-01"))
> [1] 7518 7519 7520 7523 7524
> I suspect that you have a misregistration of the x values. Since it is a 
> matrix we might have better view of it with:
> 
> dput(head(var))
> 
> I also supect that you will end up using the `axis` function to do your 
> labeling.
> 
> --
> 
> David Winsemius
> Alameda, CA, USA
> 
>> dput(head(var))
> structure(c(33450, 33451, 33452, 33455, 33456, 33457, -0.00299369609998333,
> -0.000882805884818571, -0.000570821462061429, 0.00735101809395667,
> -0.000574642535598095, -0.000464474459045714, -0.010510137214196,
> -0.0105173750100507, -0.0104987866171353, -0.0104808796029616,
> -0.0104561013745608, -0.0104562836793838, 0, 0, 0, 0, 0, 0, 
> -0.0115901618181903,
> -0.0115901618181903, -0.0115901618181903, -0.0115901618181903,
> -0.0115901618181903, -0.0115901618181903, 0, 0, 0, 0, 0, 0), .Dim = c(6L,
> 6L), .Dimnames = list(NULL, c("col1", "col2", "col3", "col4",
> "col5", "col6")))
> 
> 

You need to get the x-axis values registered corectly for `lines` and `points` 
calls:

plot(as.Date(var[, 1], origin="1899-12-30"),
  var[, 3],
  type="l",
  ylim=c(-0.04, 0),
  ylab='portfolio returns',
  xlab='time')
dts <- as.numeric(as.Date(var[, 1], origin="1899-12-30"));lines(dts, var[, 5], 
type="l", lty=3)
for (i in 1:nrow(var)) {
if(var[i, 4] | var[i,6])
 points(dts[i], var[i, 2], pch=4)

-- 

David Winsemius
Alameda, CA, USA

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to