2016-11-21 3 views
9

내가 수동으로 이 이탤릭체 단어을 포함 두 줄에 포맷 된 플롯 제목을 만들려고하고, 나는 스택 거래소에 일부 searching 을 수행하지만이있다 이 겉보기에 간단한 문제에 대한 좋은 해결책을 발견했습니다.멀티 라인 제목은

두 종의 학명은 상당히 길며, 따라서 다중 행 제목이 필요합니다 (ggplot2는이 형식을 지정하지 않습니다).

목적 :

.......... 첫째 줄 제목의와

두 번째 라인 단어 anotherItalicSpecies

ggplot(mtcars,aes(x=wt,y=mpg))+ 
    geom_point()+ 
    labs(title= expression(paste(atop("First line of title with ", atop((italic("Species"))))," 
     secondline words", italic("anotherSpecies"), "the end"))) 

다음과 같은 맹 글링 된 제목이 생성됩니다 :

atop의 조합, paste, italicscriptstyle를 사용이

enter image description here

답변

10

:

ggplot(mtcars, aes(x = wt, y = mpg)) + 
    geom_point() + 
    labs(title = ~ atop(paste('First line of title with ',italic("Species")), 
         paste(scriptstyle(italic("Species")), 
          scriptstyle(" secondline words "), 
          scriptstyle(italic("anotherSpecies")), 
          scriptstyle(" the end")))) 

당신에게 원하는 결과를 제공합니다

enter image description here

scriptstyle를 사용하여, 필수는 아니지만 더 작은 자막을 사용하는 것이 더 좋습니다. 폰트는 메인 타이틀보다.

기타 유용한 사용자 정의는 ?plotmath을 참조하십시오.

5

title에 줄 바꿈을 삽입하는 대신, 당신은 (ggplot 2.2.0에서 구입 가능) subtitle과 함께 title를 사용할 수있다. 아마도 이것은 plothmath을 약간 더 간단하게 만듭니다.


당신이 글꼴 크기가 두 줄에 동일하게하고자하는 경우

enter image description here

p <- ggplot(mtcars, aes(x = wt, y = mpg)) + 
    geom_point() + 
    labs(title = expression("First line: "*italic("Honorificabilitudinitatibus")), 
     subtitle = expression("Second line: "*italic("Honorificabilitudinitatibus praelongus")*" and more")) 
p 
themesize을 원하는 설정합니다. 제목과 자막 모두 ggplot2 2.2.0에서 기본적으로 왼쪽 정렬

p + theme(plot.title = element_text(size = 12), 
      plot.subtitle = element_text(size = 12)) 

참고. 이 텍스트는 위의 hjust = 0.5element_text에 추가하여 중앙에 배치 할 수 있습니다.

+0

니스, 내 답변에 개발 버전에서 이러한 개선 사항을 포함하는 것에 대해 생각하고있었습니다. ;-) – Jaap

+0

하하 :-) (플러스 플러스도). 어쨌든, 분명히 ggplot은 지난 주에 업데이트되었으며, 다음과 같은 것을 알지 못했습니다 : - /. 두 옵션을 모두 사용하는 것이 좋습니다. – Jaap

+0

업그레이드 된 멋진 솔루션을 사용해보십시오! 하지만 이제는 geom_ribbon의 y-aesthetic에서 오류가 발생했습니다 ...ggplot 2.2.0과 관련이있는 것으로 보입니다. 나는 약간의 수색을 할 것이지만, 당신은 어떤 생각을 가지고 있습니까? – Arch