it-swarm.it

A capo del testo per i titoli di trama

Ho un lungo titolo per una trama in R e continua ad estendersi al di fuori della finestra Come posso avvolgere il titolo su 2 righe? 

41
Dombey

prova ad aggiungere "\ n" (nuova riga) nel mezzo del titolo. Per esempio:

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

enter image description here

49
JD Long

È possibile utilizzare la funzione strwrap per dividere una stringa lunga in più stringhe, quindi utilizzare paste con collapse=\n per creare la stringa da passare all'argomento del titolo principale. Potresti anche voler dare più spazio al margine usando la funzione par con l'argomento mar.

40
Greg Snow

Includi line break/newline (\n) nella stringa del titolo, ad esempio:

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

Aggiungendo un'interruzione di riga:

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

Questo crea una tessera con tre linee (identiche). Basta usare \n tra le sottostringhe.

7

Questo potrebbe essere utile per qualsiasi frase, in modo che si divida sulle parole:

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

Sono sicuro che c'è un modo più efficiente per farlo, ma fa il lavoro.

2
RickyB

Puoi usare strwrap e paste per avvolgere automaticamente il titolo del tuo grafico. La larghezza deve essere adattata alla larghezza del supporto.

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 dovrebbe farlo automaticamente, nessuno vuole titolo ritagliato.

0
gagarine