J’ai un long titre pour un tracé en R et il continue à s’étendre en dehors de la fenêtre de tracé. Comment puis-je envelopper le titre sur 2 lignes?
essayez d’append “\ n” (nouvelle ligne) au milieu de votre titre. Par exemple:
plot(rnorm(100), main="this is my title \non two lines")
Vous pouvez utiliser la fonction strwrap
pour fractionner une longue chaîne en plusieurs chaînes, puis utiliser paste
avec collapse=\n
pour créer la chaîne à transmettre à l’argument principal du titre. Vous pouvez également vouloir vous donner plus de place dans la marge en utilisant la fonction par
défaut avec l’argument mar
.
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.
Inclure les sauts de ligne / nouvelles lignes ( \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)
Cela peut être utile pour toute 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 y a un moyen plus efficace de le faire, mais il fait le travail.
Vous pouvez utiliser strwrap
et paste
pour envelopper automatiquement le titre de votre graphique. La largeur doit être adaptée à la largeur de votre média.
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" ))
R devrait le faire automatiquement, personne ne veut de titre raccourci.