패싯 플롯에서 스트립 텍스트의 크기를 어떻게 조작 할 수 있는지 궁금합니다. 내 질문은 줄거리 제목에 대한 질문 과 비슷 하지만 특히 줄거리 제목이 아니라 패싯 제목 (strip_h)에 나타나는 텍스트를 조작하는 데 관심이 있습니다.
예를 들어 mpg 데이터 세트를 고려하십시오.
library(ggplot2)
qplot(hwy, cty, data = mpg) + facet_grid( . ~ manufacturer)
결과 출력 은 스트립에 맞지 않는 일부 패싯 제목을 생성합니다.
grid
스트립 텍스트를 처리 하는 데 사용할 방법이 있어야한다고 생각 합니다. 그러나 나는 여전히 초보자이고 Hadley의 책grid
에 있는 부록에서 정확히 어떻게해야하는지 확신하지 못했습니다 . 또한 모든 기술이 The Force를 통해 연결되어 있다고 믿기 때문에 잘못하면 세탁기가 깨질까 두려웠습니다.
미리 감사드립니다.
답변
예를 들어를 사용하여 수정 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))
답변
요즘 opts
및 의 사용은 theme_text
더 이상 사용되지 않는 것 같습니다. R은 theme
및 element_text
. 답변에 대한 해결책은 여기에서 찾을 수 있습니다. http://wiki.stdout.org/rcookbook/Graphs/Facets%20%28ggplot2%29/#modifying-facet-label-text
qplot(hwy, cty, data = mpg) +
facet_grid(. ~ manufacturer) +
theme(strip.text.x = element_text(size = 8, colour = "red", angle = 90))
답변
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)