Обтекание текста для заголовков сюжета - PullRequest
41 голосов
/ 10 сентября 2011

У меня длинный заголовок для графика в R, и он продолжает выходить за пределы окна графика.Как мне обернуть заголовок в 2 строки?

Ответы [ 7 ]

50 голосов
/ 10 сентября 2011

попробуйте добавить "\ n" (новую строку) в середине заголовка. Например:

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

enter image description here

41 голосов
/ 10 сентября 2011

Вы можете использовать функцию strwrap, чтобы разделить длинную строку на несколько строк, а затем использовать paste с collapse=\n, чтобы создать строку для передачи в аргумент основного заголовка.Вы также можете захотеть выделить себе больше места с помощью функции par с аргументом mar.

7 голосов
/ 10 сентября 2011

Включить в строку заголовка разрыв строки / перевод строки (\n), например:

strn <- "This is a silly and overly long\ntitle that I want to use on my plot"
plot(1:10, main = strn)
7 голосов
/ 10 сентября 2011

Добавляя разрыв строки:

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

Это создает плитку с тремя (одинаковыми) линиями.Просто используйте \n между вашими подстроками.

3 голосов
/ 02 января 2015

Это может быть полезно для любого предложения, так что оно разделяется на слова:

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)
}

Я уверен, что есть более эффективный способ сделать это, но он делает свою работу.

1 голос
/ 26 марта 2019

Немного на поздней стороне, но я нашел это, пытаясь понять, как убрать разрывы строк из заголовка моей гистограммы. Во всяком случае, я думаю, что это кажется самым простым вариантом для меня. Никаких лишних пробелов у \ n тоже нет. Если вы хотите без разрывов строк, используйте paste () вместо c ().

plot (rnorm (100), main = c («это мой заголовок», «в две строки»)) Пример сюжета для доказательства

1 голос
/ 04 июля 2018

Вы можете использовать strwrap и paste для автоматического переноса заголовка вашего графика.Ширина должна быть адаптирована к ширине вашего носителя.

plot(rnorm(100), main = paste(
  strwrap(
    'This is a very long title wrapped on multiple lines without the need to adjust it by hand',
    whitespace_only = TRUE,
    width = 50
  ),
  collapse = "\n"
))

enter image description here

R должен делать это автоматически, никто не хочет обрезать заголовок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...