On Mon, Sep 7, 2009 at 8:36 AM, Petr PIKAL<petr.pikal at precheza.cz>
wrote:> Dear all
>
> Colleague of mine ask me if R is capable of Andrews plot like
> andrewsplot(x) in Matlab.
>
> Quick search did not reveal anything but before I start to write any
> routine I would like to ask this ingenious audience if there is any
> implementation of Andrews plots somewhere.
Here's the code I use in the tourr package:
#' Compute Andrews' curves
#'
#' This function takes a numeric vector of input, and returns a function
which
#' allows you to compute the value of the Andrew's curve at every point
along
#' its path from -pi to pi.
#'
#' @param x input a new parameter
#' @return a function with single argument, theta
#'
#' @examples
#' a <- andrews(1:2)
#' a(0)
#' a(-pi)
#' grid <- seq(-pi, pi, length = 50)
#' a(grid)
#'
#' plot(grid, andrews(1:2)(grid), type = "l")
#' plot(grid, andrews(runif(5))(grid), type = "l")
andrews <- function(x) {
n <- length(x)
y <- rep(x[1] / sqrt(2), length(t))
function(t) {
for(i in seq(2, n, by = 1)) {
val <- i %/% 2 * t
y <- y + x[i] * (if(i %% 2 == 0) sin(val) else cos(val))
}
y / n
}
}
> I know about parallel coordinate plots in lattice (although I do not use
> them as I am not sure what the plot tells me :-).
If you don't understand parallel coordinates plots, I think you're
going to find Andrew's curves even harder to understand.
Hadley
--
http://had.co.nz/