Hi:
I need to plot two time series in the same plot and
they cover the same time range and have the same
frequency. With
RSiteSearch("multiple series plot")
i found this post by Gabor Grothendieck:
http://finzi.psych.upenn.edu/R/Rhelp02a/archive/42281.html
Exactly what i need except for one detail. I want one series
to be made of points and the other by a line. When I simply
try:
xts <- ts(x$b,start=x$a[1])
yts <- ts(y$b,start=y$a[1])
ts.plot(xts,yts,type=c("p","l"))
or if i use the 'type' argument inside gpars=list()
i get an error of "invalid plot type".
Then if i try
ts.plot(xts,yts,type1="p",type2="l")
i get warnings about NAs introduced by coercion and the
plot still shows two lines.
Is there any other way i can get these two time series
in the same plot one with points and the other with lines?
Any help much appreciated.
Ruben
Dirk Eddelbuettel
2005-Jul-24 17:03 UTC
[R] Multiple series plot with different 'type' argument
On 24 July 2005 at 12:27, Ruben Roa wrote:
| Hi:
| I need to plot two time series in the same plot and
| they cover the same time range and have the same
| frequency. With
| RSiteSearch("multiple series plot")
| i found this post by Gabor Grothendieck:
| http://finzi.psych.upenn.edu/R/Rhelp02a/archive/42281.html
| Exactly what i need except for one detail. I want one series
| to be made of points and the other by a line. When I simply
| try:
| xts <- ts(x$b,start=x$a[1])
| yts <- ts(y$b,start=y$a[1])
| ts.plot(xts,yts,type=c("p","l"))
| or if i use the 'type' argument inside gpars=list()
| i get an error of "invalid plot type".
| Then if i try
| ts.plot(xts,yts,type1="p",type2="l")
| i get warnings about NAs introduced by coercion and the
| plot still shows two lines.
| Is there any other way i can get these two time series
| in the same plot one with points and the other with lines?
| Any help much appreciated.
Yes, you can, but it requires a little bit of tinkering. Here is a complete
example with two random series. I prefer zoo as a container over ts(). You
can easily change the plotting styles to get points instead of lines etc pp.
library(zoo)
## make up an date index
index <- Sys.Date() + seq(-99,0,by=1)
## init random number generato
set.seed(42)
## and create two random series, with the date index
X1 <- zoo(cumsum(rnorm(100)), index)
X2 <- zoo(cumsum(rnorm(100)), index)
## plot series, suppress axes, set limit to range of both series
oldpar <- par(mar=c(4,4,2,4)) # extra space on the right
plot(X1, col='blue', ylab="X1", type='l',
xaxs="i", ylim=range(X, Y))
axis(2, col.axis='blue') # y-axis for X1, overplotting
grid() # prettier
par(new=TRUE) # add to the plot
plot(X2, col='green', type='l', ylab="", axes=FALSE,
xaxs="i", ylim=range(X, Y))
axis(4, col.axis='green')
## need mtext() to annotate 2nd y-axis as title() doesn't do it
mtext("X2", side=4, line=2)
Hope this helps, Dirk
--
Statistics: The (futile) attempt to offer certainty about uncertainty.
-- Roger Koenker, 'Dictionary of Received Ideas of Statistics'
Gabor Grothendieck
2005-Jul-24 17:18 UTC
[R] Multiple series plot with different 'type' argument
plot.zoo can do that.
library(zoo)
set.seed(1)
xts <- ts(rnorm(20)); xz <- as.zoo(xts)
yts <- ts(rnorm(20)); yz <- as.zoo(yts)
plot(cbind(xz,yz), type = c("p","l"), plot.type =
"single")
On 7/24/05, Ruben Roa <RRoa at fisheries.gov.fk>
wrote:> Hi:
> I need to plot two time series in the same plot and
> they cover the same time range and have the same
> frequency. With
> RSiteSearch("multiple series plot")
> i found this post by Gabor Grothendieck:
> http://finzi.psych.upenn.edu/R/Rhelp02a/archive/42281.html
> Exactly what i need except for one detail. I want one series
> to be made of points and the other by a line. When I simply
> try:
> xts <- ts(x$b,start=x$a[1])
> yts <- ts(y$b,start=y$a[1])
> ts.plot(xts,yts,type=c("p","l"))
> or if i use the 'type' argument inside gpars=list()
> i get an error of "invalid plot type".
> Then if i try
> ts.plot(xts,yts,type1="p",type2="l")
> i get warnings about NAs introduced by coercion and the
> plot still shows two lines.
> Is there any other way i can get these two time series
> in the same plot one with points and the other with lines?
> Any help much appreciated.
> Ruben
>
> ______________________________________________
> 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
>