[Rd] Error in grid.text after tcltk package loaded

Peter Dalgaard p.dalgaard at biostat.ku.dk
Tue Feb 5 22:23:54 CET 2008


Erik Iverson wrote:
> Hello -
>
> I am noticing some strange errors when using the grid package, but 
> (apparently) only after loading the tcltk package.  The interaction here 
> does not make sense to me, and I'm wondering if anyone else can 
> reproduce this, or if it is specific to my setup.  Here is my sessionInfo:
>
> sessionInfo()
> R version 2.6.2 RC (2008-02-04 r44332)
> i686-pc-linux-gnu
>
> locale:
> LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C
>
> attached base packages:
> [1] tcltk     grid      stats     graphics  grDevices utils     datasets
> [8] methods   base
>
> This also happens to me in R 2.6.1. I'm running Linux (RHEL 4) on a 
> 32-bit Intel CPU and using KDE.  These are R versions that I have 
> compiled myself.
>
> I try the following in R (started with --vanilla), this is the simplest 
> code I have to reproduce the problem on my end.
>
> ## Start R Code
>
> library(grid)
> library(tcltk)
> grid.text("a", x = seq(0,1, by = .001))
>
> ## End R Code
>
> The graphic draws to my X11 device, however, when I try to move the X11 
> R Graphics Device window with my mouse and 'drop' it somewhere by 
> releasing the mouse button, I get errors like the following:
>
>  > Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, 
>   : invalid color name
>  > Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, 
>   : REAL() can only be applied to a 'numeric', not a 'NULL'
>  > Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, 
>   : VECTOR_ELT() can only be applied to a 'list', not a 'integer'
>  > Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, 
>   : REAL() can only be applied to a 'numeric', not a 'character'
>  > Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, 
>   : REAL() can only be applied to a 'numeric', not a 'NULL'
>  > Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x, 
>   : REAL() can only be applied to a 'numeric', not a 'char'
> In addition: Warning message:
> In grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x,  :
>    supplied color is not numeric nor character
>
> My traceback always looks like this:
>  > traceback()
> 5: .Call.graphics(fnname, ..., PACKAGE = "grid")
> 4: grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x,
>         x$y, resolveHJust(x$just, x$hjust), resolveVJust(x$just,
>             x$vjust), x$rot, x$check.overlap)
> 3: drawDetails.text(x, recording = FALSE)
> 2: drawDetails(x, recording = FALSE)
> 1: drawGrob(x)
>
> I can only get these messages to happen after loading the tcltk package, 
> using grid.text, with 'many' text strings (happens rarely with 100, 
> almost every move with 1000 strings as in my example).
>
> I found just one reference to a similar error message in the archives, 
> although not to do with grid. Here's a link:
>
> https://stat.ethz.ch/pipermail/r-devel/2008-January/048117.html
>
> Can anyone else replicate this? Any ideas on what's going on?
>
>   
Hmm, I couldn't reproduce this with Fedora 2.6.1 nor 2.6.2 RC 44192. I 
take it this is not a very recent thing?

It sounds like an event loop mixup, like the BadWindow issue that some 
people see sometimes. Some kind of callback getting lost?

Hmm, I do actually see something like it when _resizing_ the window:

 > Error in grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x,  :
  REAL() can only be applied to a 'numeric', not a 'char'
In addition: Warning message:
In grid.Call.graphics("L_text", as.graphicsAnnot(x$label), x$x,  :
  supplied color is not numeric nor character

> Best,
> Erik Iverson
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>   


-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907



More information about the R-devel mailing list