2013-07-25 24 views
15

Ho realizzato correttamente un grafico a dispersione, con simboli diversi per ogni serie di dati. Ma quello che voglio fare è creare lo stesso grafico a dispersione con il punto da mostrare come numeri. Non il valore di ogni punto, solo un numero assegnato.Numeri trama R anziché punti

A partire da ora, ho tre profondità che sto tracciando (0, 3, 6 cm). Ho tutti i miei 0 cm come triangoli, ecc. Voglio che i miei punti da 0 cm siano il carattere 0, i 3cm punti da mostrare come 3 ei 6 cm punti da mostrare come 6.

È possibile?

+1

può fornire più di codice inclusi i dati impostati e la trama si è creato? –

risposta

17

Certo, basta passare il parametro pch come carattere.

dat <- data.frame(x=rnorm(100), y1=rnorm(100)-1, y2=rnorm(100), y3=rnorm(100)+1) 
plot(y1 ~ x, data=dat, pch="0", ylim=c(-4, 4)) 
points(y2 ~ x, data=dat, pch="3") 
points(y3 ~ x, data=dat, pch="6") 

ETA: una cosa bella è che il parametro pch, come molti parametri di grafica di base, è Vectorised. Quindi puoi fare qualcosa del genere (che funziona anche per la risposta di Agstudy).

dat <- data.frame(x=rnorm(300), y=rnorm(300) + c(0,3,6), depth=rep(c(0,3,6), 100)) 
plot(x ~ y, data=dat, pch=as.character(dat$depth)) 
+8

Nota questa soluzione funziona solo per le etichette a carattere singolo. Per le etichette con più caratteri, usa 'testo' come nella risposta di agstudy. –

17

È possibile utilizzare text. Utilizzando i dati @HongOoi:

dat <- data.frame(x=rnorm(100), y1=rnorm(100)-1, y2=rnorm(100), y3=rnorm(100)+1) 
plot(y1 ~ x, data=dat, type='n', ylim=c(-4, 4))  
text(dat$x,dat$y1,label=0,col='blue') 
text(dat$x,dat$y2,label=1,col='green') 
text(dat$x,dat$y3,label=2,,col='red') 

enter image description here

+0

Potrebbe anche solo fare 'matplot (dat)' probabilmente –