2012-04-03 6 views
10

Non riesco a modificare il tipo di carattere in un diagramma ggplot2 di direct.label (dal pacchetto directlabels). Vedi sotto per un esempio riproducibile - non c'è alcun problema nel far ruotare le etichette di 45 gradi, rendendole grassetto, serif e trasparente al 50% (tutti gli altri argomenti nell'elenco alla fine del codice qui sotto) - ma non riesco a controllare il carattere. (Non voglio che siano 25, questo è solo per i test ....)Come cambiare il carattere in direct.label?

C'è qualcosa che mi manca, o è un bug?

library(ggplot2) 
library(scales) 
library(directlabels) 
df <- data.frame(x = rnorm(26), y=rnorm(26), let=letters) 
p <- ggplot(df, aes(x, y, color=let)) + geom_point() 
direct.label(p, 
    list("top.points", rot=45, fontsize=25, 
     fontface="bold", fontfamily="serif", alpha=0.5)) 

risposta

11

ho capito, si utilizza cex di modificare la dimensione del carattere.

df <- data.frame(x = rnorm(26), y=rnorm(26), let=letters) 
p <- ggplot(df, aes(x, y, color=let)) + geom_point() 
direct.label(p, 
    list("top.points", rot=45, cex=6, 
      fontface="bold", fontfamily="serif", alpha=0.5)) 

che si darebbe, jjj

3

È una sorta di percorso diverso, ma dovresti considerare di fare tutto in ggplot2?

ggplot(df, aes(x, y, color=let)) + 
     geom_point() + 
     geom_text(df, mapping=aes(x, y, label=let, colour=let), 
     size=5, vjust=-.55, hjust=.55, angle = 45, fontface="bold", 
     family ="serif", alpha=0.5) + opts(legend.position = "none") 

Questo darebbe questo, ed è possibile regolare la grandezza scrittura utilizzando size enter image description here

+0

grazie, non male con questi dati e +1 per qualcosa che probabilmente usare, ma voglio la funzionalità direct.labels modo le etichette non sono in cima l'uno dell'altro per punti ravvicinati (i miei dati reali hanno etichette più lunghe). –