# Re: [R] Lattice - parallel: xlim and adding lines

From: Sundar Dorai-Raj <sundar.dorai-raj_at_pdf.com>
Date: Wed 30 Mar 2005 - 09:04:14 EST

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, 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, 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.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,groups=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.
>>>
>>>
>>> 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:
>>
>> 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
>> http://www.R-project.org/posting-guide.html
```

>
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help