From: Deepayan Sarkar <deepayan_at_stat.wisc.edu>

Date: Wed 30 Mar 2005 - 10:10:28 EST

R-help@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 Received on Wed Mar 30 10:17:34 2005

Date: Wed 30 Mar 2005 - 10:10:28 EST

On Tuesday 29 March 2005 17:04, Sundar Dorai-Raj wrote:

*> T.A.Wassenaar wrote on 3/29/2005 4:17 PM:
*

> > Hi Sundar,

*> >
**> > Thanks for the reply. And, oops, the panel.parallel.new shouldn't
**> > be in there. That is a revised panel function to color according to
**> > a group. As with strange, that would generally be 'not-expected',
**> > i.e., in the present case, not having an x-axis running from -1 to
**> > 1 for all ranges. I would at least expect to have zero in the
**> > middle,
*

Why??? Why on earth would [-1,1] be something you ``expect'' and [0,1] be something ``strange''? As far as I can see, neither are documented (and hence you shouldn't expect anything).

You can of course set 'xlim=c(0,1)', but the better way of doing that would have been 'scales=list(x = list(axs = "i")))'. Unfortunately, this doesn't currently work in 'parallel', which is a bug.

It's still not very clear to me what you want to.

> > but that is not so. Excuse me for not expanding 'strange'

*> > previously. I have read the guide.., some while ago.
**> >
**> > Thanks again,
**> >
**> > Tsjerk
**>
**> Tsjerk,
**>
**> From panel.parallel, the x values are being scaled to c(0, 1)
**>
**> x <- (as.numeric(z[subscripts[i], , ]) - llim)/dif
**>
**> This puts the "Min" at x == 0 and the "Max" at x == 1 on the x-axis.
**> If you want to leave it in the raw scale of the x,
*

That doesn't really make sense. The whole point of a parallel plot is to show several variables (with different ranges) in a single plot with a common axis. This is done by transforming (shifting and linearly scaling) each variable to have a common range. As such, there's no 'natural choice' for this common range, [0,1] is just as good as any other [a,b] for -Inf < a < b < Inf.

If you want to do something else, you might as well write your own prepanel and panel functions.

> you will have to

*> write your own panel and prepanel function, or simply determine what
**> xlim = c(-1, 1) is in the scaled coordinates.
**>
**> E.g.
**>
**> lin.scale <- function(x, a = 0, b = 1, new.x = NULL) {
**> slope <- (b - a)/diff(range(x))
**> inter <- a - slope * min(x)
**> if(is.null(new.x)) {
**> inter + slope * x
**> } else {
**> inter + slope * new.x
**> }
**> }
**> xlim <- lin.scale(range(iris[1:4]), new.x = c(-2, 10))
**> parallel(~ iris[1:4] | Species, iris, xlim = xlim)
**>
**> The next question would be how to set the x labels to something other
**> than "Min" and "Max" because (to me) they appear to be hard-coded in
**> parallel. I will leave that question to Deepayan.
*

My bad (relic of early days). I'll fix it so that they can be overridden by 'scales'.

> As for adding lines, you will also have to scale your reference line

*> to the panel units. For my example, each panel has a x range of c(0,
**> 1) and a y range of c(1, 4). E.g.
**>
**> my.panel.parallel <- function(z, subscripts, col =
**> superpose.line$col, lwd = superpose.line$lwd,
**> lty = superpose.line$lty, ...) {
**> superpose.line <- trellis.par.get("superpose.line")
**> panel.abline(v = 0.5, lwd = 3)
**> panel.parallel(z, subscripts, col, lwd, lty, ...)
**> }
**>
**> HTH,
**>
**> --sundar
**>
**> > On Tue, 29 Mar 2005 14:42:05 -0600
**> >
**> > Sundar Dorai-Raj <sundar.dorai-raj@pdf.com> wrote:
**> >> T.A.Wassenaar wrote on 3/29/2005 2:17 PM:
**> >>> Hi,
**> >>>
**> >>> I'm trying to set the minimum and maximum in a parallel plot, but
**> >>> trying xlim=c(-1,1) gives strange results. Am I missing
**> >>> something? The call I give is:
**> >>>
**> >>> parallel(~X[,c(6,9,12,15,18)]|X$ff,X,panel=panel.parallel.new,gro
**> >>>ups=X$protein,layout=c(3,1),xlim=c(-1,1))
**> >>>
**> >>>
**> >>> Besides, I would like to add a reference line to the plot, but
**> >>> can't find how to do that.
**> >>>
**> >>> I hope someone can give me a hint or two.
**> >>>
**> >>> Thanks in advance,
**> >>>
**> >>> Tsjerk
**> >>
**> >> Tsjerk,
**> >>
**> >> I don't think you'll get much help without knowing, first, what
**> >> "strange" means, and second, what "panel.parallel.new" does. And
**> >> you can always add a reference line by using panel.abline in your
**> >> panel function.
**> >>
**> >> And, from the signature:
**> >>
**> >> PLEASE do read the posting guide!
**> >> http://www.R-project.org/posting-guide.html
**> >>
**> >> --sundar
*

R-help@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 Received on Wed Mar 30 10:17:34 2005

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:30:57 EST
*