[R] X11 device now needs to be explicitly started?

Deepayan Sarkar deepayan at stat.wisc.edu
Thu Jan 16 22:21:02 CET 2003


On Thursday 16 January 2003 02:10 pm, Patrick Connolly wrote:
> On Wed, 15-Jan-2003 at 10:47PM -0600, Deepayan Sarkar wrote:
> |> On Wednesday 15 January 2003 07:35 pm, Patrick Connolly wrote:
> |> >          _
> |> > platform i686-pc-linux-gnu
> |> > arch     i686
> |> > os       linux-gnu
> |> > system   i686, linux-gnu
> |> > status
> |> > major    1
> |> > minor    6.2
> |> > year     2003
> |> > month    01
> |> > day      10
> |> > language R
> |> >
> |> >
> |> > Until this version, I've not had to explicitly start the x11 device.
> |> > Now, (at least with lattice plots), one is not automatically started
> |>
> |> Could you explain ? There's sometimes a warning, but I haven't seen
> |> the device not being opened.
>
> On closer inspection, I see that it falls over earlier than the
> plotting itself.  It arises when I attempt to adjust some trellis
> settings.  This is the message:
>
> Error in trellis.par.set(y, x) : No device is currently Active
>
>
> I notice that trellis.par.set has been changed this time.
>
> "trellis.par.set" <-
>   function (name, value, warn = TRUE)
> {
>   if (!is.list(value))
>     stop("value must be a list")
>   if (warn && is.null(dev.list()))
>     stop("No device is currently Active")
>   lattice.theme[[.Device]][[name]] <<- value
> }
>
>
> Previously, it had been only the last line.
>
> The problem arises because dev.list() returns NULL if no device is
> open and thus the call to stop().
>
> I don't know whether it would be a good idea to have trellis.par.set
> start the default device.
>
> Ideas?

Personally, I don't have any strong preferences, other than that the old 
behaviour (which silently did nothing, if I remember correctly) should be 
changed. Maybe we should go with S-PLUS behaviour, which gives an error if 
trellis.par.set() is called without an open device, but DOES start the 
default device if trellis.par.get() is called. This would mean that lset() 
would also start the device.

Does that sound OK ?

Deepayan




More information about the R-help mailing list