2013-04-07 16 views
16

Voglio solo aggiungere annotazioni a ciascun pannello di figure generate da ggplot2; solo etichette semplici come (a), (b), (c), ecc. in ogni angolo. C'è un modo semplice per fare questo?ggplot2: geom_text() con facet_grid()?

+3

Avete un'immagine come un esempio, è possibile inviare? –

+0

Mi dispiace, ho bisogno di capire come pubblicare immagini ... – hatmatrix

risposta

27

Da: https://groups.google.com/forum/?fromgroups=#!topic/ggplot2/RL8M7Ut5EpU è possibile utilizzare il seguente:

library(ggplot2) 
x <-runif(9, 0, 125) 
data <- as.data.frame(x) 
data$y <- runif(9, 0, 125) 
data$yy <- factor(c("a","b","c")) 

ggplot(data, aes(x, y)) + 
    geom_point(shape = 2) + 
    facet_grid(~yy) + 
    geom_text(aes(x, y, label=lab), 
     data=data.frame(x=60, y=Inf, lab=c("this","is","the way"), 
      yy=letters[1:3]), vjust=1) 

che dovrebbe dare questo:

+6

+1, ma potresti fornire un po 'più di contesto su come funziona? In questo momento è solo un pezzo di codice e un'immagine. –

+3

Sicuro. La chiamata di base 'ggplot' ha il frame di dati con i dati di plot effettivi per le faccette' facet_grid' di geom_point'. La chiave è impostare un nuovo frame di dati per 'geom_text' (creato al volo nel frammento di codice, ma potresti crearlo al di fuori del blocco' ggplot' e fare semplicemente riferimento al frame di dati) e abbinare il numero di elementi dell'etichetta a il numero di faccette. Puoi utilizzare più chiamate a 'geom_text' per posizionare più etichette diverse tra le faccette. Saranno referenziati in ordine, quindi sii consapevole di ciò. – hrbrmstr

+1

Se vuoi che vengano disegnate più etichette, non è necessario chiamare più volte geom_text, basta aggiungere le righe al tuo data.frame con le variabili text e facet_grid appropriate. –

5

Fondamentalmente, si crea un data.frame con il testo che contiene una colonna con il testo e una colonna con le variabili utilizzate per facet_grid. È quindi possibile semplicemente aggiungere un geom_text con quello data.frame. Vedere la documentazione di geom_text per ulteriori dettagli sul posizionamento del testo e così via.

Problemi correlati