Mehrfarbige Titel mit ggplot2 für R

Ich habe versucht, mehrfarbige Texte wie folgt zu implementieren:

Mehrfarbentext auf Diagramm

was darauf verwies:

mehrfarbiger Text in R

Dies ist, worauf ich gekommen bin (mit Hilfe vonHier):

require(ggplot2)
require(grid)
png(file="multicolortitle.png",width=800,height=500)
qplot(x = hp,y = mpg,data = mtcars,color=factor(mtcars$cyl),size=2) +
  scale_colour_manual(values = c("red3","green3","blue3")) + 
  theme_bw() +
  opts(title = " \n ") +
  opts(legend.position = "none") 
spacing  <- 20
grid.text(0.5, unit(1,"npc") - unit(1,"line"), 
          label=paste("4 cylinder,",paste(rep(" ",spacing*2), collapse='')),
          gp=gpar(col="red3", fontsize=16,fontface="bold"))
grid.text(0.5, unit(1,"npc") - unit(1,"line"), 
          label=paste(paste(rep(" ",spacing), collapse=''),"6 cylinder,",
            paste(rep(" ",spacing), collapse='')),
          gp=gpar(col="green3", fontsize=16,fontface="bold"))
grid.text(0.5, unit(1,"npc") - unit(1,"line"), 
          label=paste(paste(rep(" ",spacing*2), collapse=''),"8 cylinder"),
          gp=gpar(col="blue3", fontsize=16,fontface="bold"))
grid.text(0.5, unit(1,"npc") - unit(2,"line"), 
          label=paste(paste(rep(" ",spacing*0), collapse=''),
            "- Horsepower versus Miles per Gallon"),
          gp=gpar(col="black", fontsize=16,fontface="bold"))
dev.off()

Hier ist das resultierende Diagramm:

Meine Frage: Gibt es dafür eine elegantere Methode? Ich möchte in der Lage sein, zu verwendenggsave Das Erstellen des Abstands hierfür ist zum Beispiel ein sehr manueller Vorgang - nicht geeignet für Szenarien, in denen ich automatisch Hunderte solcher Zeichnungen erstellen muss. Ich konnte einige Funktionen darüber schreiben, aber vielleicht gibt es eine bessere Möglichkeit, die mit der Basisplotfunktion verwendeten Methoden zu implementieren?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage