stavo cercando di implementare i testi multicolore come illustrato di seguito:titoli multicolore con ggplot2 per R
cui fa riferimento questo:
Questo è ciò che mi si avvicinò con (con l'aiuto di here):
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()
Ecco il grafico risultante:
Quindi, la mia domanda: c'è un metodo più elegante da utilizzare per questo? Mi piacerebbe essere in grado di utilizzare ggsave
per esempio, e la creazione della spaziatura per questo è un processo altamente manuale, non adatto agli scenari in cui ho bisogno di creare automaticamente centinaia di grafici di questa natura. Potrei vedere scrivere alcune funzioni in cima a questo, ma forse c'è un modo migliore per implementare i metodi utilizzati con la funzione di tracciamento di base?
Vuoi rendere automaticamente i colori come nella trama? –
Penso che sarebbe una buona cosa, dato che penso che tu possa semplicemente fare i 'valori' in 'scale_colour_manual' un vettore e quindi chiamare i valori [1] e così via, magari aggiungere il nero così sarebbe valori [4]. Sarebbe bello averlo dove potrebbe tirare i colori usati nella trama anche se non sono stati selezionati manualmente e non sono sicuro di come potrei farlo, ma scommetto che è documentato da qualche parte: /. – ideamotor
Benvenuti nella comunità R di Stack Overflow! – Gregor