2012-05-11 9 views
5

habe ich diesen Code, um dieses Grundstück zu machen:Wie plotten Sie den Wert von abline 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)) 

Mein Grundstück wie folgt aussieht: Plot

1.) Wie kann ich den Wert der ablines in einem einfachen Plot plotten?

2.) Wie kann ich mein Diagramm so skalieren, dass beide Linien in der Mitte erscheinen?

+0

nach Wert von abline Sie? irgendein Beispielcode überhaupt? –

+0

Ja, das ist was ich meine! –

+0

Nein, ich weiß nicht, was Sie mit dem Wert von abline meinen –

Antwort

6

Skala von Grundstück zu ändern, so Linien in der Mitte Änderung sind die Achsen d

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) 

von „Wert“ Ich gehe davon aus Sie bedeuten, wo die Linie die x-Achse schneidet? Etwas wie text? dh:

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

, wenn Sie das Etikett auf der x-Achse wollen, dann versuchen:

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

zu verhindern Überlappung zwischen den Etiketten können Sie entfernen den Null dh:

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

oder bevor Sie Zeichnen Sie die Ränder aus und fügen Sie die Beschriftungen weiter von der Achse hinzu

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

Das war mein Ansatz: > plot (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") > > Achse (2, las = 1) > Achse (2 , 0,78, 0,78, las = 1) > Achse (1, 1.77, 1.77) , die führt zu folgenden Bild: [Grafik] (http://i.imgur.com/xdPkW.png) können Sie sehen, dass 0,49 und 0 überlappende ... Wie kann ich dieses Problem lösen dass sie sich nicht überschneiden? –

+0

gab zwei Beispiele –

0

im Geiste auf die Antwort @ user1317221 vorgeschlagen, hier ist mein Vorschlag

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

# positions of the lines 
vert = 0.5 
horiz = 1.3 

die Linien in der Mitte des Grundstücks anzuzeigen, zunächst die horizontalen und vertikalen Abstände zwischen den Datenpunkten und den Linien zu berechnen, Passen Sie die Grenzwerte dann entsprechend an.

# 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) 

Nun konnte man die ‚Werte der Linien‘ plotten, entweder auf den Achsen (der line Parameter Sie für mögliche Überschneidungen steuern):

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

oder alternativ innerhalb des Plotten Rahmen :

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