Mehrfarbige Titel mit ggplot2 für R
Ich habe versucht, mehrfarbige Texte wie folgt zu implementieren:
was darauf verwies:
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?