Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

As_labeller with expression() in ggplot2 facet_wrap

Tags:

r

ggplot2

In

library(ggplot2)
library(reshape)
df <- as.data.frame(matrix(runif(9),3,3))
df$factor <- letters[1:3]
df.m <- melt(df)
ggplot(df.m, aes(variable, value)) +
  geom_boxplot() +
  facet_wrap(~factor)

i want to change the facet names. According to the ggplot2 tutorials, this is working:

new.lab <- as_labeller(c(a="A",b="B",c="C"))
ggplot(df.m, aes(variable, value)) +
  geom_boxplot() +
  facet_wrap(~factor, labeller=new.lab)

However, this is not:

new.lab <- as_labeller(c(a="A",b="B",c=expression(italic("C"))))
ggplot(df.m, aes(variable, value)) +
  geom_boxplot() +
  facet_wrap(~factor, labeller=new.lab)   

How can i get italics (or any other special symbol) in ggplot2 2.0 facets?

like image 507
nouse Avatar asked Feb 20 '16 13:02

nouse


2 Answers

How about label_parsed instead?

df.m$f2 <- factor(df.m$factor, labels = c("AAA", "bold(BBB)", "italic(CCC)"))
ggplot(df.m, aes(variable, value)) + 
  geom_boxplot() + 
  facet_wrap(~f2, labeller = label_parsed) + 
  theme(text = element_text(size = 20))

enter image description here

like image 130
tonytonov Avatar answered Oct 29 '22 22:10

tonytonov


You can specify the type of labeller here using label_parsed,

new.lab <- as_labeller(c(a="A", b="B", c="italic(C)"), label_parsed)
ggplot(df.m, aes(variable, value)) +
  geom_boxplot() +
  facet_wrap(~factor, labeller = new.lab)
like image 45
Rorschach Avatar answered Oct 29 '22 22:10

Rorschach