2016-02-20 4 views
2

ВAs_labeller с выражением() в ggplot2 facet_wrap

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) 

я хочу изменить имена фасет. По ggplot2 учебники, это работает:

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) 

Однако это не так:

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) 

Как я могу получить курсив (или любой другой специальный символ) в ggplot2 2,0 граней?

ответ

4

Как насчет label_parsed вместо этого?

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

4

Вы можете указать тип labeller здесь с помощью 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) 
+0

Это не кажется, что работать с пробелами: Ошибка в разборе (Text = as.character (значения)): : 1: 6: неожиданное символ 1: влажности почвы – nouse

+0

THx. я подумал, как Clay = «Clay ~ ('%')» и «MicrobialN =» paste (N [mic]) », но как насчет этого: R.minor =" italic (Rhinantus ~ minor) ", который игнорируется. Rhinalus Minor должен быть выделен курсивом и разделен пробелом – nouse

+1

Моя ошибка. уровень фактора был неправильным. Спасибо! – nouse

Смежные вопросы