2016-03-18 12 views
5

è possibile impostare la posizione della legenda all'interno dell'area tracciato, comeggplot2: cambiare posizione strip.text nella trama facet_grid

... + theme(legend.justification=c(1,0), legend.position=c(1,0)) 

Esiste un modo simile facile cambiare la posizione del testo striscia (o livelli di fattore Terreni raggruppati)

library(reshape2); library(ggplot2) 

sp <- ggplot(tips, aes(x=total_bill, y=tip/total_bill)) + geom_point() + 
    facet_grid(. ~ sex) 

sp 

enter image description here

(http://www.cookbook-r.com/Graphs/Facets_%28ggplot2%29/)

in lattice Vorrei usare qualcosa come strip.text = levels (dat $ Y) [panel.number()] e panel.text (...), ma potrebbe esserci anche un modo più pulito ...

thx, Christof

+2

si potrebbe utilizzare geom_text per aggiungere del testo dove si vuole sul grafico – MLavoie

+0

MLavoie sì, thx, ma come faccio ad avere lo strip.text e l'area del tracciato (in qualcosa di lattice come panel.number () e current.panel.limits()) ... Mi piace automatizzarlo e non ne ho bisogno per questo esatto esempio, dove conosco lo strip.text e le posizioni. – ckluss

+1

Se si impostano manualmente i limiti 'scale_x_continuous', è possibile prevedere dove cadrà il testo e in base al numero di caratteri che è possibile compensare per regolare la posizione orizzontale. –

risposta

4

Ecco un approccio:

ggplot(tips, aes(x = total_bill, y = tip/total_bill)) + 
    geom_point() + 
    facet_grid(. ~ sex) + 
    geom_text(aes(label = sex), x = Inf, y = Inf, hjust = 1.5, vjust = 1.5) + 
    theme(strip.background = element_blank(), 
     strip.text = element_blank()) 

Tuttavia, questo non è in movimento il strip.text, invece, è l'aggiunta di un elemento geom_text e spegnendo il strip.background e strip.text, ma penso che achiev è il risultato desiderato.

Plot