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?
essayez d’ajouter "\ 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 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
.
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)
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.
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.
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"
))
R devrait le faire automatiquement, personne ne veut de titre recadré.