情节标题的文字换行

时间:2011-09-09 20:33:37

标签: r plot

我对R中的情节有一个很长的标题,它一直延伸到情节之外 窗口。如何将标题包装成2行?

8 个答案:

答案 0 :(得分:50)

尝试在标题中间添加“\ n”(新行)。例如:

plot(rnorm(100), main="this is my title \non two lines")

enter image description here

答案 1 :(得分:40)

您可以使用strwrap函数将长字符串拆分为多个字符串,然后使用pastecollapse=\n创建要传递给主标题参数的字符串。您可能还希望使用带有par参数的mar函数为边距留出更多空间。

答案 2 :(得分:7)

添加换行符:

plot(1:10, main=paste(rep("The quick brown fox", 3), sep="\n"))

这会创建一个包含三条(相同)行的图块。只需在子字符串之间使用\n

答案 3 :(得分:7)

在标题字符串中包含换行符/换行符(\n),例如:

strn <- "This is a silly and overly long\ntitle that I want to use on my plot"
plot(1:10, main = strn)

答案 4 :(得分:3)

这可能对任何句子都有用,因此它会在单词上分割:

wrap_sentence <- function(string, width) {
  words <- unlist(strsplit(string, " "))
  fullsentence <- ""
  checklen <- ""
  for(i in 1:length(words)) {
    checklen <- paste(checklen, words[i])
    if(nchar(checklen)>(width+1)) {
      fullsentence <- paste0(fullsentence, "\n")
      checklen <- ""
    }
    fullsentence <- paste(fullsentence, words[i])
  }
  fullsentence <- sub("^\\s", "", fullsentence)
  fullsentence <- gsub("\n ", "\n", fullsentence)
  return(fullsentence)
}

我确信这是一种更有效的方法,但它可以胜任。

答案 5 :(得分:1)

您可以使用expandstrwrap自动包装图形标题。该宽度需要适应您的介质宽度。

paste

enter image description here

R应该自动执行此操作,没人要裁剪标题。

答案 6 :(得分:1)

有点偏僻,但我在尝试找出如何从直方图标题中删除换行符时发现了这一点。无论如何,我认为这对我来说似乎是最简单的选择。 \ n也没有多余的空间。如果您希望它没有换行符,请使用paste()而不是c()。

plot(rnorm(100),main = c(“这是我的标题”,“两行”)) Example plot for evidence

答案 7 :(得分:0)

如果您要使用“ \ n”解决方案之一,请记住,标题也可能变得过高而溢出顶部。如果您动态生成行,则可以跟踪行数并解决如下问题:

mar = par()$mar #get the current margins
mar[3] = mar[3] + line_count #increase the top margin if the title has too many lines
par(mar = mar) #set the new margins
hist(rnorm(100), main = title)