it-swarm.com.de

Textumbruch für Plottitel

Ich habe einen langen Titel für ein Plot in R, und es erstreckt sich immer weiter außerhalb des Plots Wie kann ich den Titel in zwei Zeilen umschließen? 

41
Dombey

fügen Sie "\ n" (neue Zeile) in die Mitte Ihres Titels ein. Zum Beispiel:

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

enter image description here

49
JD Long

Sie können die Funktion strwrap verwenden, um eine lange Zeichenfolge in mehrere Zeichenfolgen aufzuteilen, und dann mit paste mit collapse=\n die Zeichenfolge erstellen, die an das Haupttitelargument übergeben wird. Sie können sich auch mehr Platz am Rand geben, indem Sie die Funktion par mit dem Argument mar verwenden.

40
Greg Snow

Zeilenumbruch/Zeilenumbruch (\n) in die Titelzeichenfolge einschließen, z.

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

Durch Hinzufügen eines Zeilenumbruchs:

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

Dadurch wird eine Kachel mit drei (identischen) Linien erstellt. Verwenden Sie einfach \n zwischen Ihren Teilzeichenketten.

7

Dies kann für jeden Satz nützlich sein, sodass es nach Wörtern aufgeteilt wird:

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

Ich bin sicher, dass es einen effizienteren Weg gibt, aber es funktioniert.

2
RickyB

Ein bisschen spät, aber ich habe das herausgefunden, als ich versucht habe, die Zeilenumbrüche aus meinem Histogramm-Titel zu entfernen. Wie auch immer, ich denke, das scheint mir die einfachste Option zu sein. Kein zusätzlicher Speicherplatz von\n. Wenn Sie es ohne Zeilenumbrüche möchten, verwenden Sie paste () anstelle von c ().

plot (rnorm (100), main = c ("das ist mein Titel", "in zwei Zeilen") Beispielplot für Beweise

1
Jason Meyer

Sie können strwrap und paste verwenden, um den Titel Ihres Diagramms automatisch einzugeben. Die Breite muss an Ihre Medienbreite angepasst werden.

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 sollte das automatisch tun, niemand möchte einen zugeschnittenen Titel.

0
gagarine