2017-10-27 2 views
0

ggplot2 (v2.2.2.1) facet_wrap을 사용하여 플롯을 작성하려고하는데 하나의 패싯 레이블 (5 개 중 하나)에만 그리스 기호가 있어야합니다. 나는 stackoverflow에 게시 된 코드를 사용하려고 시도했다 : example 1, example 2, example 3 그러나 아무런 성공도없이 (getGrob이 작동하지 않고 mf_labeller에도 해당). 누구든지 저를 도울 수 있습니까? 여기 그리스어 기호가 tha 패싯 레이블 내에 있음

은 예제 코드입니다 :

df <- data.frame(genes = rep(c("BA","MLL","pos","neg","PMLalpha+"),5), value = sample(1:100, 25, replace=TRUE)) 
df$genes <- factor(df$genes, levels = c("BA","MLL","pos","neg","PMLalpha+"), ordered = TRUE) 
ggplot(df,aes(x=genes, y=value)) + geom_boxplot()+ 
    facet_wrap(~genes, ncol = 5,scales = "free_x")+ 
    scale_x_discrete(name="", 
       breaks = c("BA","MLL","pos","neg","PMLalpha+"), 
       labels = c("BA","MLL","pos","neg",expression(paste("PML", alpha,"+")))) 

내가 x 축 틱의 이름을 바꿀 수 있어요,하지만 난 그냥 할 수없는면 라벨에서 그. 미안해. 분명하다면, 나는 미치고있다. ... 조언과 도움을 주셔서 감사합니다!

답변

0

여기에 labeller=label_parsed을 사용하는 트릭이 있습니다.

첫째, 식을 사용 df$genes 레이블을 정의 구문 분석합니다 : 당신이 x 축 레이블 놨 볼 수 있듯이

ggplot(df,aes(x=genes, y=value)) + geom_boxplot()+ 
    facet_wrap(~genes, ncol = 5, scales = "free_x", labeller = label_parsed) 

:

df$genes <- factor(df$genes, levels = c("BA","MLL","pos","neg","PMLalpha+"), ordered = TRUE, labels=c("BA","MLL","pos","neg",expression(paste("PML", alpha,"+")))) 

다음 labeller=label_parsedfacet_wrap에서를 사용 하지만 다음과 같이 scale_x_discrete에 수정할 수 있습니다.

ggplot(df,aes(x=genes, y=value)) + geom_boxplot()+ 
    facet_wrap(~genes, ncol = 5, scales = "free_x", labeller = label_parsed) + 
    scale_x_discrete(name="", 
       breaks = c("BA","MLL","pos","neg","paste(\"PML\", alpha, \"+\")"), 
       labels = c("BA","MLL","pos","neg", expression(paste("PML", alpha,"+")))) 

enter image description here

관련 문제