[R] how to add 3d-points to bplot {rms} figure?
David Winsemius
dwinsemius at comcast.net
Tue Apr 10 05:01:11 CEST 2012
On Apr 9, 2012, at 10:39 PM, David Winsemius wrote:
>
> On Apr 9, 2012, at 6:24 PM, phi771 wrote:
>
>> Hello!
>> I have created a bplot-figure using this code:
>>
>> *file <- "2dcali_red.ttt"
>> ux<-as.matrix(read.table(file, dec = ","))
>>
>> mode(ux)<-'numeric'
>>
>> vel<-ux[,1]
>> ang<-ux[,2]
>> x<-ux[,3]
>> y<-ux[,4]
>>
>> dat<- data.frame(ang=ang, x=x,y=y)
>>
>> require(rms)
>>
>> ddist2 <- datadist(dat)
>> options(datadist="ddist2")
>>
>> fitn <- lrm(ang ~ rcs(x,4) + rcs(y,4), data=dat)
>> predi <- Predict(fitn, x, y)
>>
>> bplot(predi,lfun=wireframe, screen = list(z = -40, x = -80),
>> drape=TRUE)*
>>
>> The file 2dcali_red.ttt consists of 4 columns can be found here :
>> http://www.color-space.de/upload/dl/2dcali_red.ttt link
>>
>> The code gives me the bplot-figure, which looks like this:
>> http://r.789695.n4.nabble.com/file/n4544050/Screen_shot_2012-04-10_at_12.04.24_AM.png
>>
>> Now I want to add some 3d data (x,y,z) to this plot (like
>> scatterplot3d),
>> but i don't know how. I also don't know how to extract the x,y,z
>> mesh as
>> coordinates from the bplot. Some help would be very appreciated.
>> Thank you!
>
> That is most probably a lattice::wireframe object. You could use
> 'trellis.focus' or the 'layer' functions in pkg::latticeExtra to
> attempt panel.3dbars() additions. I haven't actually done this, but
> I have added panel function results to the lattice::contourplots
> that are created byrms/Hmisc.
>
> The 3d aspect adds a significant level of extra work: http://tolstoy.newcastle.edu.au/R/e2/help/06/10/3274.html
There is also a panel.3d.identify and panel.identify.cloud that might
be needed:
https://r-forge.r-project.org/scm/viewvc.php/pkg/R/interaction.R?view=markup&revision=675&root=lattice
My efforts at adding bars to that plot have failed so far. This does
not do anything useful:
trellis.focus("panel", 1, 1)
panel.3dbars(x=-1.5, y=-.1, z=0,distance=20, col="red",
xlim=c(-2.4,-1), ylim=c(-0.15, 0.15), zlim=c(-50,100),
xlim.scaled=c(-0.5,0.5), ylim.scaled=c(-0.5,0.5),
zlim.scaled=c(-0.5,0.5), zero.scaled=25)
trellis.unfocus()
>
> Maybe a contourplot would suffice?
David Winsemius, MD
West Hartford, CT
More information about the R-help
mailing list