"ivo welch" <[EMAIL PROTECTED]> said...
> * Finally, a more complex question: I have a historical rate of stock
> return series (yes, I teach finance).  I would like to make a ts plot on
> the left (plot(date,returns,type="h")), and a plot(density(returns)) on
> the right.  works nicely with par(mfrow=c(1,2)), but it would be even
> nicer if I could rotate the density plot 90 degrees, so that it is more
> apparent that the density plot is an aggregation of the points at the
> same y coordinates.  (if need be, a histogram could replace the density
> plot.)  Is it possible to rotate an entire subpanel figure.  if there
> was a "horizontal" parameter to ps.options for plot(), it would do the
> trick, but this does not work.   So, this may be a suggestion, too.

There might be a more natural way to do this using grid graphics, but I'm
still not familiar with grid.  This type of plot is one I do enough of
that I rolled by own the old-fashioned way.

Try

zz <- ts(rnorm(100))
DenTSplot(zz)

## ts and density
DenTSplot <- function(x, ylim=NULL,main=NULL,...) {
        # data sanity check
        if(!is.ts(x))
                x <- ts(x)
        if(!is.null(dim(x))) {
                stop("can only handle univariate time series\n")
        }

        # set layout - FIXME - should this be user-setable?
        layout(matrix(c(1,1,1,2),nrow=1))

        # find x density.  FIXME - need to take arguments about
        # bandwidth selector, etc.
        x.d <- density(x)

        if(is.null(ylim)) {
                ylim <- range(x.d$x)
        }
        if(is.null(main))
                main <- "Series"

        opar <- par(no.readonly=TRUE)
        on.exit(par(opar))
        mai <- par("mai")
        mai.ts <- c(mai[1:3],0)
        par(mai=mai.ts)
        plot(x,ylim=ylim,main=main,...)

        mai.den <- c(mai[1],0,mai[3:4])
        par(mai=mai.den)
        plot(x.d$y, x.d$x,
                ylim=ylim, type="l", yaxt="n",
                ylab="",xlab="",main="Density")
}

______________________________________________
[EMAIL PROTECTED] mailing list
https://www.stat.math.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html

Reply via email to