2010-04-13 33 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) 

Tôi có thể đặt tiêu đề cốt truyện để bao quanh và thu nhỏ văn bản cho vừa với ô không?R: ggplot2, tôi có thể đặt tiêu đề cốt truyện để bao quanh và thu nhỏ văn bản cho vừa với ô không?

Trả lời

6

Tôi không nghĩ rằng có tùy chọn bọc văn bản trong ggplot2 (Tôi luôn chèn \ n thủ công). Bạn có thể, tuy nhiên, thu nhỏ kích thước của văn bản của tiêu đề bằng cách thay đổi mã của bạn theo cách sau:

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

Trong thực tế, bạn có tất cả các khía cạnh của văn bản với theme_text chức năng.

+0

'opt' và' theme_text' đã được đổi tên: https://github.com/wch/ggplot2/wiki/New-theme-system –

+0

UPDATE: Tôi nghĩ rằng trong ggplot gần đây hơn là bạn có thể thêm tiêu đề chỉ đơn giản bằng cách sử dụng "\ n" –

28

Bạn phải chọn thủ công số ký tự để quấn tại, nhưng sự kết hợp của strwrappaste sẽ làm những gì bạn muốn.

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)) 
Các vấn đề liên quan