2015-05-11 15 views
5

dire che questo è il mio set di dati:trama multi-personaggio forme in ggplot

> (fake = data.frame(id=as.character(18:22), x=rnorm(5), y=rnorm(5))) 

    id   x   y 
1 18 1.93800377 0.67515777 
2 19 1.28241814 -0.04164806 
3 20 -1.58919444 -0.50885536 
4 21 -0.08127943 -1.90003188 
5 22 0.78134213 0.17693039 

Voglio un grafico a dispersione di x vs. y in cui la forma tracciando è la variabile id. Ho provato questo:

ggplot(data=fake, aes(x=x, y=y, shape=id)) + geom_point() + 
    scale_shape_manual(values=as.character(fake$id)) + theme_bw() 

enter image description here

Sembra che solo il primo carattere di id viene utilizzato come una forma stampa. Come posso usare l'intera stringa?

risposta

8

Se si desidera stampare il testo su un terreno, utilizzare geom_text piuttosto che geom_point

ggplot(data=fake, aes(x=x, y=y, label=id)) + geom_text() + theme_bw() 

Il carattere tracciato (forma) usato da geom_point può essere solo un singolo carattere. Per stringhe più lunghe, è necessario utilizzare geom_text().

enter image description here

+0

Bello. Grazie! –

Problemi correlati