As_labeller with [removed]) in ggplot2 facet_wrap

2020-03-03 03:02发布

问题:

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?

回答1:

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))



回答2:

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)


标签: r ggplot2