[R] ggplot facet label font size
deepayan.sarkar at gmail.com
Sun Aug 6 08:17:56 CEST 2006
On 8/3/06, Walker, Sam <s-walker at ti.com> wrote:
> This works OK, but there is some extra spacing between the panels, the
> top axis and the strip on the top, and the left labels and panel.
> How can I remove these extra spaces?
This turns out to be surprisingly easy (surprising to me at least):
function(which.given, which.panel, var.name, ...)
if (which.given == 1 && which.panel == 2)
var.name = var.name,
function(which.given, which.panel, var.name, ..., horizontal)
if (which.given == 2 && which.panel == 1)
var.name = var.name,
horizontal = FALSE, ...)
histogram(~ tip/total_bill | sex + smoker, tips,
strip = my.strip,
strip.left = my.strip.left,
par.strip.text = list(lines = 0.6),
list(layout.heights = list(strip = c(0, 1)),
layout.widths = list(strip.left = c(1, 0)),
add.text = list(cex = 0.7)))
The trick of changing two-line strips to one-line strips is not
obvious from the documentation (such as it is), it depends on the
implementation of strips.
> I've tried changing various layout.widths settings with no luck. It
> seems the spaces are calculated based on the number of conditioning
> variables, in this case 2 (sex+smoker).
> Thanks in advance...
> -----Original Message-----
> From: Gabor Grothendieck [mailto:ggrothendieck at gmail.com]
> Sent: Wednesday, August 02, 2006 6:04 PM
> To: Walker, Sam
> Cc: r-help at stat.math.ethz.ch
> Subject: Re: [R] ggplot facet label font size
> On 8/2/06, Walker, Sam <s-walker at ti.com> wrote:
> > How do I change the font size in the facet labels along the edges of
> > plot?
> > For example (from the ggplot help file):
> > p<-ggplot(tips, sex ~ smoker, aesthetics=list(x=tip/total_bill))
> > gghistogram(p)
> > In this plot, the facet labels are "smoker: No", "smoker: Yes", "sex:
> > Female", "sex: Male". What command can I use to reduce the font size
> > these labels?
> > In lattice terminology, cex is used to scale these strip labels. But
> > couldn't find the equivalent in ggplot.
> > The reason I'm asking is I have a 9x7 array of plots which I've been
> > plotting with lattice. I wanted to use ggplot because I like having
> > labels on the edge of the plots
> Note that lattice can do that by using custom strip functions:
> library(ggplot) # data resides here
> my.strip <- function(which.given, which.panel, ...)
> if (which.given == 1 && which.panel == 2)
> strip.default(which.given, which.panel, ...)
> my.strip.left <- function(which.given, which.panel, ..., horizontal)
> if (which.given == 2 && which.panel == 1)
> strip.default(which.given, which.panel, horizontal = FALSE, ...)
> histogram(~ tip/total_bill | sex + smoker, tips, strip = my.strip,
> strip.left = my.strip.left, par.settings = list(add.text =
> list(cex = 0.7)))
> R-help at stat.math.ethz.ch mailing list
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help