From: array chip <arrayprof...@yahoo.com>
Subject: Re: [R] 3-D response surface using wireframe()
To: "David Winsemius" <dwinsem...@comcast.net>, "Felix Andrews" <fe...@nfrac.org
>
Cc: r-help@r-project.org
Date: Friday, April 9, 2010, 1:09 PM
Hi David and Felix,
Thank you very much for your suggestions. To be honest,
this has become beyond my understanding of lattice plots
now. I am relatively new to lattice plots, so have no idea
how function within function works (for example, how does
panel.3dpolygon() within panel.3d.wireframe() within
wirefarme() works, totally have no clue.
Felix, your example code of panel.3dpolygon() for volcano
plot does what I want, but again, I don't know how to tweak
your example to suit my case.
I attached an example dataset, and an example of the plot
that I wanted to make (especially those grid lines on the 3
bounding surfaces of the box, and if possible remove those
front edges of the box to make it look like open).
dat<-read.table("dat.txt",sep='\t',header=T,row.names=1)
library(lattice)
wireframe(z ~ x*y, data = dat,
scales = list(arrows = FALSE, cex=0.9, col="black",font=3,
tick.number=6, z=list(tick.number=10,
tck
=
0.8
,distance
=0.8),x=list(tck=0.8,distance=0.6),y=list(tck=0.7,distance=0.6)),
zlim=seq(-14,4,by=2),
zlab=list(label="Z", rot=90,cex=0.9),
xlab=list(label="X", rot=15.5),
ylab=list(label="Y", rot=-33),
drape = T,
at=seq(min(dat$z),max(dat$z),length=50),
col.regions=rgb(colorRamp(c("white", "red"))(seq(0, 1,
length = 50)), max = 255),
colorkey = F,
par.box=list(lwd=2), ## line width of box
screen = list(z = 210, x = -75, y = 5),
scpos=list(x=9,y=5,z=2) ## where axes are draw
)
Thank you all very much for the help. It's fun to learn.
John
--- On Thu, 4/8/10, Felix Andrews <fe...@nfrac.org>
wrote:
From: Felix Andrews <fe...@nfrac.org>
Subject: Re: [R] 3-D response surface using
wireframe()
To: "David Winsemius" <dwinsem...@comcast.net>
Cc: "array chip" <arrayprof...@yahoo.com>,
r-help@r-project.org
Date: Thursday, April 8, 2010, 9:56 PM
On 9 April 2010 11:18, David
Winsemius <dwinsem...@comcast.net>
wrote:
On Apr 8, 2010, at 8:29 PM, array chip wrote:
David,
Thansk again! Sarkar's Lattice book is
excellent
source for lattice. Here
is a link for all the figures and codes used
in
the book. You example is
figure 13.7.
http://lmdvr.r-forge.r-project.org/figures/figures.html
I got the first point! For the second point
below,
Figure 13.7 an
excellent example for projecting the 3D
dataset
onto the bounding surface,
but it's not what I meant. I think I didn't
explain what I wanted clearly.
What I really wanted is a simple straight
grid
lines across the tick marks
for 3 bounding surfaces of the box, not a
projection of the 3D dataset. Hope
I have explained clearly this time.
You have not convinced me that I misunderstood
what
you wanted. I figured
that you would use something other than
transforming
the data driven contour
lines. But if you want to use a lattice function
there
is a panel.grid, but
I still suspect it will need to be 3dto3d
transformed
onto one of the "lim"
extremes.
Might be a little easier to use panel.3dpolygon from
latticeExtra.
(or not)
e.g. something like
wireframe(volcano, drape = TRUE, scales = list(arrows
=
FALSE),
panel.3d.wireframe = function(x,y,z,...) {
panel.3dwire(x,y,z,...)
panel.3dpolygon(x = rep(pretty(x), each = 3),
y = min(y), z =
c(range(z),NA),
..., border="grey", lwd=2)
})
Many thanks
John
--- On Thu, 4/8/10, David Winsemius <dwinsem...@comcast.net>
wrote:
From: David Winsemius <dwinsem...@comcast.net>
Subject: Re: [R] 3-D response surface
using
wireframe()
To: "array chip" <arrayprof...@yahoo.com>
Cc: r-help@r-project.org
Date: Thursday, April 8, 2010, 3:46 PM
On Apr 8, 2010, at 3:13 PM, array chip
wrote:
David,
That does the job! Thanks a lot.
Now I am very very close to what I
want.
Still have a
couple of
small adjustments to make.
1. I use drape=TRUE to draw grid and
color
on the
surface, is there
a parameter to adjust the density of
the
grid?
If you mean the spacing between points,
then
isn't that
determined by
the density of the gridded data
arguments
before they get
to the
wireframe function?
2. Is there a way that I can add grid
to
the axis
surface? I mean
the sides of the box, between x &
y,
between x
& z, and between y &
z? And I need to choose which 3 side
of
the box that I
want to add
grid?
See Figure 13.7 of Sarkar's Lattice text
for
an example of
a panel
function that collapses the contourLines
of
the volcano
dataset at the
top bounding surface by using
ltransform3dto3d
with a z
argument of
zlim.scaled[2]. I would think that a
grid
could be 3dto3d
transformed
similarly.
--
David.
Thank you all for the help. It's fun
to
play with
wireframe
John
--- On Wed, 4/7/10, David Winsemius
<dwinsem...@comcast.net>
wrote:
From: David Winsemius <dwinsem...@comcast.net>
Subject: Re: [R] 3-D response
surface
using
wireframe()
To: "array chip" <arrayprof...@yahoo.com>
Cc: r-help@r-project.org
Date: Wednesday, April 7, 2010,
9:22
PM
On Apr 7, 2010, at 8:58 PM, array
chip
wrote:
With the help document, i
finally
find a set
of values
of for x=,y=
and z= in "screen" argument
that
gives me the
correct
rotation of
the plot. But now it plots x
and y
axis (tick
marks
and labels)
along the top of the plot.
Is
there one way to
plot x
and y axis on
the bottom of the plot?
Look at the scpos argument to
specify
the scales
location.
(Still
lacking an example and
therrefore
doing this from
memory.)
--
David
Thanks
John
--- On Wed, 4/7/10, David
Winsemius <dwinsem...@comcast.net>
wrote:
From: David Winsemius
<dwinsem...@comcast.net>
Subject: Re: [R] 3-D
response
surface
using
wireframe()
To: "array chip" <arrayprof...@yahoo.com>
Cc: r-help@r-project.org
Date: Wednesday, April
7,
2010, 8:07 AM
A search with the
following
strategy:
RSiteSearch("lattice
wireframe
rotate
axes")
Followed by adding
requests to
search
earlier
years'
archives produced this
link
which has a
further
link to a
document that answers
most of
your
questions, at
least the
ones that are
comprehensible:
http://tolstoy.newcastle.edu.au/R/e2/help/07/03/12534.html
--David.
On Apr 6, 2010, at 7:12
PM,
array chip
wrote:
I am working on
plotting a
response
surface
using
wireframe(). The default
style/orientation
is
z
|
|
y |
\ |
\ |
\
|
\
|
\ |
\
|
\ |
\|________________x
0
Now what I want the
orientation of
axes is:
z
|
|
|
|
|
/0\
/ \
/
\
/ \
/
\
/
\
y
z
Two z axes? How
interesting!
My understanding is
that
the
screen=list(z=,y=,x=)
control the orientation
of
axes, but even
after
reading the
help page of screen
argument,
I still
don't
understand how
to use it.
screen: "A list
determining the
sequence of
rotations
to be applied to the
data
before being
plotted.
The initial
position starts with the
viewing point
along the
positive
z-axis, and the x and y
axes
in the usual
position. Each
component of the list
should
be named one
of "x",
"y" or "z"
(repititions are
allowed),
with their
values
indicating the
amount of rotation about
that
axis in
degrees."
Can anyone explain to
me
how the
screen
argument
works? And what values
(x,y,z)
I should
choose for
the
orientation that I want?
Another question is
wireframe(0 will
draw all
8 edges
of the cubic by default,
is
there anyway
that I
can control
what edges I can draw,
what I
can hide?
thanks very much!
John
______________________________________________
R-help@r-project.org
mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the
posting
guide
http://www.R-project.org/posting-guide.html
and provide
commented,
minimal,
self-contained,
reproducible code.
David Winsemius, MD
West Hartford, CT
David Winsemius, MD
West Hartford, CT
David Winsemius, MD
West Hartford, CT
David Winsemius, MD
West Hartford, CT
______________________________________________
R-help@r-project.org
mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained,
reproducible code.
--
Felix Andrews / 安福立
Postdoctoral Fellow
Integrated Catchment Assessment and Management (iCAM)
Centre
Fenner School of Environment and Society [Bldg 48a]
The Australian National University
Canberra ACT 0200 Australia
M: +61 410 400 963
T: + 61 2 6125 4670
E: felix.andr...@anu.edu.au
CRICOS Provider No. 00120C
--
http://www.neurofractal.org/felix/
-----Inline Attachment Follows-----
______________________________________________
R-help@r-project.org
mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained,
reproducible code.