facet_grid 플롯의 스트립 텍스트를 어떻게 조작 할 수 있습니까?


100

패싯 플롯에서 스트립 텍스트의 크기를 어떻게 조작 할 수 있는지 궁금합니다. 내 질문은 줄거리 제목에 대한 질문 과 비슷 하지만 특히 줄거리 제목이 아니라 패싯 제목 (strip_h)에 나타나는 텍스트를 조작하는 데 관심이 있습니다.

예를 들어 mpg 데이터 세트를 고려하십시오.

    library(ggplot2) 
    qplot(hwy, cty, data = mpg) + facet_grid( . ~ manufacturer)

결과 출력 은 스트립에 맞지 않는 일부 패싯 제목을 생성합니다.

grid스트립 텍스트를 처리 하는 데 사용할 방법이 있어야한다고 생각 합니다. 그러나 나는 여전히 초보자이고 Hadley의 책grid 에 있는 부록에서 정확히 어떻게해야하는지 확신하지 못했습니다 . 또한 모든 기술이 The Force를 통해 연결되어 있다고 믿기 때문에 잘못하면 세탁기가 깨질까 두려웠습니다.

미리 감사드립니다.

답변:


134

예를 들어를 사용하여 수정 strip.text.x(또는 strip.text.y) 할 수 있습니다.theme_text()

qplot(hwy, cty, data = mpg) + 
      facet_grid(. ~ manufacturer) + 
      opts(strip.text.x = theme_text(size = 8, colour = "red", angle = 90))

업데이트 : ggplot2 버전> 0.9.1

qplot(hwy, cty, data = mpg) + 
      facet_grid(. ~ manufacturer) + 
      theme(strip.text.x = element_text(size = 8, colour = "red", angle = 90))

+1 아주 좋아요. x 축 주석도 개선 할 수있는 방법이 있습니까?
George Dontas 2010 년

감사합니다 rcs. 나는 gd047을 사용하고 있으며 아마도 별도의 질문이어야합니까? 당신이 주목하고있는 것은 주요 x- 값의 붐비는 것입니다. 주요 x 축과 y 축 눈금의 값을 수동으로 설정하는 방법이 있어야하지만 그것이 무엇인지 기억할 수 없습니다. :-(
briandk

@ gd047 :axis.text.x=theme_text(...)
rcs



6

mpg회전 각도와 글꼴 크기 를 변경 하는 예에서는 괜찮은 것 같지만, 많은 경우에 상당히 긴 레이블이있는 변수를 발견 할 수 있으며 회전 된 긴 레이블을 읽으려고하는 것이 목 (문자 그대로) 통증이 될 수 있습니다. .

따라서 각도와 크기를 변경하는 것 외에도 (또는 보완) 일반적으로 facet_grid 의미있는 방식으로 분할 될 수있을 때마다 .

일반적으로 dataset$variable다음과 같은 문자열 이있는 경우

c("median_something", "aggregated_average_x","error","something_else")

나는 단순히한다 :

reformat <function(x,lab="\n"){ sapply(x, function(c){ paste(unlist(strsplit(as.character(c) , split="_")),collapse=lab) }) }

[아마도 더 나은 정의가 reformat있지만 적어도 이것은 잘 작동합니다.]

dataset$variable <- factor(dataset$variable, labels=reformat(dataset$variable, lab='\n')

패싯시 모든 레이블은 매우 읽기 쉽습니다.

ggplot(data=dataset, aes(x,y)) + geom_point() + facet_grid(. ~ variable)

1
어쩌면 이런 일이 더 : 레벨 (새 $ 효과) <- GSUB ( "", "\ n"수준 (새 $ 효과))
DCA
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.