2012-05-11 9 views
5

Ho usato questo codice per rendere questa trama:Come tracciare il valore di ablina in R?

plot(p, cv2,col=rgb(0,100,0,50,maxColorValue=255),pch=16, 
    panel.last=abline(h=67,v=1.89, lty=1,lwd=3)) 

mio trama assomiglia a questo: Plot

1.) Come posso tracciare il valore delle ablines in una trama semplice?

2.) Come è possibile ridimensionare il grafico in modo che entrambe le linee appaiano nel mezzo?

+0

per valore di abline vuoi dire? nessun codice di esempio? –

+0

Sì, questo è quello che intendo! –

+0

no, non so cosa intendi per valore di abline –

risposta

6

Per cambiare la scala di trama così linee sono nel cambiamento mezzo gli assi ovvero

x<-1:10 
y<-1:10 
plot(x,y) 
abline(a=1,b=0,v=1) 

changed to: 

x<-1:10 
y<-1:10 
plot(x,y,xlim=c(-30,30)) 
abline(a=1,b=0,v=1) 

dal "valore" Io parto dal presupposto vuoi dire dove la linea taglia l'asse x? Qualcosa come text? vale a dire:

text((0), min(y), "number", pos=2) 

se si desidera che l'etichetta sull'asse x quindi provare:

abline(a=1,b=0,v=1) 
axis(1, at=1,labels=1) 

per evitare sovrapposizioni tra le etichette è possibile rimuovere lo zero vale a dire:

plot(x,y,xlim=c(-30,30),yaxt="n") 
axis(2, at=c(1.77,5,10,15,20,25)) 

o prima trama estendere i margini e aggiungere le etichette ulteriormente dall'asse

par(mar = c(6.5, 6.5, 6.5, 6.5)) 
plot(x,y,xlim=c(-30,30)) 
abline(a=1,b=0,v=1) 
axis(2, at=1.77,labels=1.77,mgp = c(10, 2, 0)) 
+0

Questo era il mio approccio: > grafico (x, y, col = rgb (0,100,0,50, maxColorValue = 255), pch = 16, panel.last = abline (h = 0,78, v = 1,77, lty = 1, lwd = 3), yaxt = "n") > > asse (2, las = 1) > asse (2 , 0,78, 0,78, las = 1) > asse (1, 1,77, 1.77) che porta alla seguente immagine: [Graphic] (http://i.imgur.com/xdPkW.png) Si può vedere che 0,49 e 0 si sovrappongono ... Come posso risolvere questo che non si sovrappongono? –

+0

ha fornito due esempi –

0

simile nello spirito alla risposta proposta da @ user1317221, qui è il mio suggerimento

# generate some fake points 
x <- rnorm(100) 
y <- rnorm(100) 

# positions of the lines 
vert = 0.5 
horiz = 1.3 

Per visualizzare le linee al centro della trama, prima di calcolare le distanze orizzontali e verticali tra i punti dati e le linee, quindi regolare i limiti in modo adeguato.

# compute the limits, in order for the lines to be centered 
# REM we add a small fraction (here 10%) to leave some empty space, 
# available to plot the values inside the frame (useful for one the solutions, see below) 
xlim = vert + c(-1.1, 1.1) * max(abs(x-vert)) 
ylim = horiz + c(-1.1, 1.1) * max(abs(y-horiz)) 

# do the main plotting 
plot(x, y, xlim=xlim, ylim=ylim) 
abline(h=horiz, v=vert) 

Ora, è possibile tracciare i 'valori delle linee', sia sugli assi (parametro line permette di controllare l'eventuale sovrapposizione):

mtext(c(vert, horiz), side=c(1,2)) 

oppure all'interno della cornice di tracciatura :

text(x=vert, y=ylim[1], labels=vert, adj=c(1.1,1), col='blue') 
text(x=xlim[1], y=horiz, labels=horiz, adj=c(0.9,-0.1), col='blue') 

HTH

Problemi correlati