Skip to content

xyplot,grid.text segfault (PR#948)

4 messages · Peter Malewski, Peter Dalgaard, Paul Murrell

#
First, thank you very much for that lattice-package, second, the code
below segfaults R:

zz <- data.frame(
                 y=rnorm(100),x=rnorm(100),z=round(rnorm(100)),
                 g=as.character(rep(1:2,50)))
xyplot(y~ x|z,data=zz,groups=g,
            panel = function(x, y, subscripts, groups)  
            grid.text(x=x, y=y, label=groups[subscripts])
       )

I'm not sure if I have understood that panel stuff right, but anyway,
it shouldn't segfault. BTW: I also unsure if I have to use the
develop-version of R & whether lattice bugs should be submitted
(because of the devel-status??).

Peter

--please do not edit the information below--

Version:
 platform = i686-pc-linux-gnu
 arch = i686
 os = linux-gnu
 system = i686, linux-gnu
 status = 
 major = 1
 minor = 2.3
 year = 2001
 month = 04
 day = 26
 language = R

Search Path:
 .GlobalEnv, package:grid, package:lattice, package:ctest, Autoloads, package:base

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
#
p.malewski@tu-bs.de writes:
Well, it is easier for us to deal with erroneously submitted bug than
erroneously unsubmitted ones. We have an Add-Ons category on r-bugs to
put it in. 

Lattice is closely associated with the core team, so we'd be able to
track this kind of problem. With some other packages which we do not
maintain, we have some trouble figuring out whether a report has been
solved or whether it was even a bug in the first place (it would be
nice if the original submitters would lend a hand there).

As I remember it, Paul and Deepayan were somewhat vague about exactly
what was required, except that you'd need something relatively recent.
A segfault certainly looks like a real bug.
#
p.malewski@tu-bs.de writes:
grid.text() seems unhappy with being passed a non-character vector for
the label argument. I think Paul muttered something to the effect that
he knew there would be that kind of weaknesses in the code.

The following runs successfully (well, at least it doesn't crash - the
result looks a bit weird):

library(lattice)
zz <- data.frame(
                 y=rnorm(100),x=rnorm(100),z=round(rnorm(100)),
                 g=as.character(rep(1:2,50)))
xyplot(y~ x|z,data=zz,groups=g,
            panel = function(x, y, subscripts, groups)
            grid.text(x=x, y=y,
                      label=as.character(groups[subscripts]))
       )
2 days later
#
Hi
The results look weird because the x and y locations in grid.text are in
"npc" units by default (that is, they are taken as proportions of the
dimensions of the region they are being drawn in).  This means that values
outside the range 0..1 are drawn outside the limits of the plotting region.
You need to specify "native" units in the call so that the x and y locations
are relative to the scales on the axes of the plotting region.  For example,

    grid.text(x=x, y=y,
                  label=as.character(groups[subscripts]),
                  default.units="native")

This unit stuff is a "feature" of the underlying grid graphics, which is
probably why you did not notice it.  The default panel functions do,
however, provide examples of what needs to be done.  See, for example,
panel.xyplot.

Paul


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._