2010-04-13 19 views
15
library(ggplot2) 

my_title = "This is a really long title of a plot that I want to nicely wrap \n and fit onto the plot without having to manually add the backslash n, but at the moment it does not" 

r <- ggplot(data = cars, aes(x = speed, y = dist)) 
r + geom_smooth() + #(left) 
opts(title = my_title) 

Çizim başlığını, arkasına sarmak ve metni sığdırmak için küçültmek üzere ayarlayabilir miyim?R: ggplot2, arsa sığacak şekilde metnin etrafına sarmak ve metni küçültmek için çizim başlığını ayarlayabilir miyim?

cevap

6

ggplot2'da bir metin kaydırma seçeneği olduğunu düşünmüyorum (her zaman manuel olarak ekledim). Ancak, şu şekilde kodunuzu değiştirerek başlığın metin boyutunu küçültmek olabilir: Metnin

title.size<-10 
r + geom_smooth() + opts(title = my_title,plot.title=theme_text(size=title.size)) 

Aslında, tüm yönleriyle theme_text fonksiyonu ile.

+0

'opt' ve': https://github.com/wch/ggplot2/wiki/New-theme-system –

+0

GÜNCELLEME: Ben ekleyebilir daha yeni ggplot düşünüyorum sadece "\ n" kullanarak başlıklar –

28

Sarmak üzere karakter sayısını elle seçmeniz gerekir, ancak strwrap ve paste birleşimleri istediğiniz şeyi yapar. yeniden adlandırılan theme_text`

wrapper <- function(x, ...) 
{ 
    paste(strwrap(x, ...), collapse = "\n") 
} 

my_title <- "This is a really long title of a plot that I want to nicely wrap and fit onto the plot without having to manually add the backslash n, but at the moment it does not" 
r + 
    geom_smooth() + 
    opts(title = wrapper(my_title, width = 20))