[R] Adding points to a wireframe: 'x and units must have length >0' error

David Winsemius dwinsemius at comcast.net
Mon Oct 24 21:04:35 CEST 2011


On Oct 24, 2011, at 1:23 PM, Megan Bartlett wrote:

> Hi,
>
> I'm trying to follow the suggestions given by Deepayan Sarkar in this
> message:
>
> http://tolstoy.newcastle.edu.au/R/help/05/11/16135.html
>
> to plot 3-D points on a wireframe plot. The problem is that I keep  
> getting a
> partly formed plot- with the colored lattice visible but no axis  
> labels or
> additional points- with the error message "error using packet 1, 'x'  
> and
> 'units' must have length >0".  Does anyone know what I'm doing  
> wrong? The
> code I've been using is:
>
> # generate some fake data
> data.frame(x = seq(-4, 0, 0.5), y = seq(0, 40, 5))-> df
> expand.grid(x = df$x, y = df$y) -> gridd
> (gridd$y* gridd$x) -> gridd$z
>
> data.frame(x = runif(10, -4, 0), y = runif(10, 0, 40))-> pts1
> pts1$z <- pts1$x*pts1$y
>
> # plot
>
> wireframe(z ~ y*x, gridd, drape = TRUE, colorkey= TRUE,
>          scales = list(arrows = FALSE),
>          pts = pts1,
>          panel.3d.wireframe =
>          function(x, y, z,xlim, ylim, zlim, xlim.scaled, ylim.scaled,
> zlim.scaled, pts1, ...)
>
>                    {
>              panel.3dwire(x = x, y = y, z = z,
>                           xlim = c(-4, 0),
>                           ylim = c(0, 40),
>                           zlim = c(-160, 0),
>                           xlim.scaled = c(-0.5, 0.5),
>                           ylim.scaled = c(-0.5, 0.5),
>                           zlim.scaled = c(-0.5, 0.5),
>                           ...)
>        xx <- xlim.scaled[1] + diff(xlim.scaled) * (pts1$x - xlim[1]) /
> diff(xlim)
>        yy <- ylim.scaled[1] + diff(ylim.scaled) * (pts1$y - ylim[1]) /
> diff(ylim)
>        zz <- zlim.scaled[1] + diff(zlim.scaled) * (pts1$z - zlim[1]) /
> diff(zlim)
>              panel.3dscatter(x = xx,

You assigned 'pts1' to 'pts', so you should have used 'pts' above:


>                              y = yy,
>                              z = zz,
>                              xlim = xlim,
>                              ylim = ylim,
>                              zlim = zlim,
>                              xlim.scaled = xlim.scaled,
>                              ylim.scaled = ylim.scaled,
>                              zlim.scaled = zlim.scaled,
>                              ...)
>          })
>
> Thanks so much!
>
> -Megan Bartlett
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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



More information about the R-help mailing list