[R] Increasing space for main title in a lattice (xyplot()) graphics.

Bert Gunter bgunter@4567 @end|ng |rom gm@||@com
Thu Feb 13 16:31:56 CET 2020


Thanks Deepayan. Yes that is both the correct diagnosis and the "obvious"
solution I was looking for. And now I don't have to embarrass myself by
showing my "clumsy" solution.

Bert

Bert Gunter

"The trouble with having an open mind is that people keep coming along and
sticking things into it."
-- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )


On Wed, Feb 12, 2020 at 11:07 PM Deepayan Sarkar <deepayan.sarkar using gmail.com>
wrote:

> Hi Bert,
>
> You are right that the general solution is for 'main' to be a (grid)
> grob. It is not clear (to me) what the "height" of a textGrob with
> multiple labels should be, but the following gives reasonable results:
>
> xyplot(1 ~ 1,
>        main = textGrob(c("The quick brown fox jumped", "over the lazy
> dog"),
>                        x = unit(0.5, "npc"), y = unit(c(0.75, 0.25),
> "cm")))
>
> I'm guessing your first attempt was with the default units ("npc") for y.
>
> The correct grob (allowing more detailed control) to use for complex
> grid objects is a frameGrob.
>
> lattice does have an interface to create (simple) frameGrobs, for
> constructing legends. This can be (ab)used as follows:
>
> xyplot(1 ~ 1,
>        main = draw.key(key = list(text = list(c("The quick brown fox
> jumped",
>                                                 "over the lazy dog"),
>                                               font = c(1, 2), col = c(2,
> 3)))))
>
> -Deepayan
>
> On Thu, Feb 13, 2020 at 11:36 AM Bert Gunter <bgunter.4567 using gmail.com>
> wrote:
> >
> > OK. Now for a tougher problem: how to make the first line bold font and
> the second line normal font (and/or different colors)?
> >
> > My reading of the docs did not reveal how to do it, but I found a way
> using a textGrob for the title (i.e. main ). But it's tricky, as the
> "obvious solution" of using different y values for the lines caused lattice
> to enlarge the title viewport too much, shrinking the graph panels so that
> details were lost. I think I have found a way to avoid this and make it
> work, but I'll delay giving my somewhat clumsy "solution" until some of you
> have a chance to find a more sensible approach, if you care to try.
> >
> > Bert
> >
> > Bert Gunter
> >
> > "The trouble with having an open mind is that people keep coming along
> and sticking things into it."
> > -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip )
> >
> >
> > On Wed, Feb 12, 2020 at 9:19 PM Deepayan Sarkar <
> deepayan.sarkar using gmail.com> wrote:
> >>
> >> On Thu, Feb 13, 2020 at 10:39 AM Richard M. Heiberger <rmh using temple.edu>
> wrote:
> >> >
> >> > It works as anticipated for me
> >> >
> >> > > xyplot(1 ~ 1,
> >> > +             main="The quick brown fox jumped\n over the lazy dog.")
> >> > > xyplot(1 ~ 1,
> >> > +             main="The quick brown fox jumped over the lazy dog.")
> >> >
> >> > Something else you are doing is probably causing the difficulty.
> >>
> >> Yes, the necessary space should be automatically allocated. Details of
> >> version / device might help diagnosing the problem.
> >>
> >> -Deepayan
> >>
> >> >
> >> > Rich
> >> >
> >> > On Wed, Feb 12, 2020 at 11:59 PM Rolf Turner <r.turner using auckland.ac.nz>
> wrote:
> >> > >
> >> > >
> >> > > I'm trying to do an xyplot() with a longish main title that I'd
> like to
> >> > > split into two lines, something like
> >> > >
> >> > >      xyplot(<whatever>,
> >> > >             main="The quick brown fox jumped\n over the lazy dog.")
> >> > >
> >> > > When I do this I only get the last half, i.e. the "over the lazy
> dog."
> >> > > bit, and the first half doesn't appear.
> >> > >
> >> > > In base graphics I'd handle this sort of thing by increasing the
> third
> >> > > entry of the "mar" parameter.
> >> > >
> >> > > How can increase the space allocated for the title in lattice
> graphics?
> >> > > I've done a substantial amount of Googling and can't find anything
> >> > > helpful.  I've fiddled about with trellis.par.set() and cannot seem
> to
> >> > > get any effect.
> >> > >
> >> > > Could someone please give my poor feeble brain some guidance?  Ta.
> >> > >
> >> > > cheers,
> >> > >
> >> > > Rolf Turner
> >> > >
> >> > > --
> >> > > Honorary Research Fellow
> >> > > Department of Statistics
> >> > > University of Auckland
> >> > > Phone: +64-9-373-7599 ext. 88276
> >> > >
> >> > > ______________________________________________
> >> > > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >> > > 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.
> >> >
> >> > ______________________________________________
> >> > R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >> > 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.
> >>
> >> ______________________________________________
> >> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> >> 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list