[R] Lattice - parallel: xlim and adding lines

2005-03-29 Thread T.A.Wassenaar
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.
Thanks in advance,
Tsjerk
__
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


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

2005-03-29 Thread Sundar Dorai-Raj

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.
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


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

2005-03-29 Thread T.A.Wassenaar
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
On Tue, 29 Mar 2005 14:42:05 -0600
 Sundar Dorai-Raj [EMAIL PROTECTED] 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.
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
__
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


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

2005-03-29 Thread Sundar Dorai-Raj

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.

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 [EMAIL PROTECTED] 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.
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

__
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
__
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


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

2005-03-29 Thread Deepayan Sarkar
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 [EMAIL PROTECTED] 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