web-dev-qa-db-fra.com

Habillage du texte pour les titres de parcelle

J'ai un long titre pour un tracé en R et il continue de s'étendre en dehors de la fenêtre du tracé. Comment puis-je envelopper le titre sur 2 lignes? 

41
Dombey

essayez d’ajouter "\ n" (nouvelle ligne) au milieu de votre titre. Par exemple:

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

enter image description here

49
JD Long

Vous pouvez utiliser la fonction strwrap pour scinder une longue chaîne en plusieurs chaînes, puis utiliser paste avec collapse=\n pour créer la chaîne à transmettre à l'argument de titre principal. Vous voudrez peut-être aussi vous accorder plus de place dans la marge en utilisant la fonction par avec l'argument mar.

40
Greg Snow

Incluez un saut de ligne/nouvelle ligne (\n) dans la chaîne de titre, par exemple:

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

En ajoutant un saut de ligne:

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

Cela crée une tuile avec trois lignes (identiques). Utilisez simplement \n entre vos sous-chaînes.

7
Dirk Eddelbuettel

Cela peut être utile pour n'importe quelle phrase, de sorte qu'elle se divise en mots:

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

Je suis sûr qu'il existe un moyen plus efficace de le faire, mais cela fait le travail.

2
RickyB

Vous pouvez utiliser strwrap et paste pour envelopper automatiquement le titre de votre graphique. La largeur doit être adaptée à la largeur de votre support.

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 devrait le faire automatiquement, personne ne veut de titre recadré.

0
gagarine