2012-05-11 4 views
5

Я использовал этот код, чтобы сделать этот участок:Как построить значение abline в 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)) 

Мой сюжет выглядит следующим образом: Plot

1.) Как я могу построить кривую стоимости ablines в простом сюжете?

2.) Как я могу масштабировать свой сюжет так, чтобы обе линии появлялись посередине?

+0

величиной abline вы имеете в виду? любой пример кода вообще? –

+0

Да, вот что я имею в виду! –

+0

нет, я не знаю, что вы имеете в виду по значению abline –

ответ

6

изменить масштаб сюжета, так линии в середине изменения оси т.е.

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) 

по «значение» Я предполагаю, что вы имеете в виду, где линия пересекает ось х? Что-то вроде text? то есть:

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

если вы хотите метку на оси х, то попробуйте:

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

, чтобы предотвратить перекрытие между метками вы можете удалить ноль т.е.:

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

или перед вами участок удлиняет поля и добавляет метки дальше от оси

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

Это был мой подход: > 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") > > ось (2, las = 1) > ось (2 , 0,78, 0,78, las = 1) > ось (1, 1,77, 1.77) , что приводит к следующему изображению: [Графический] (http://i.imgur.com/xdPkW.png) Вы можете видеть, что 0,49 и 0 накладываются друг на друга ... Как я могу решить эту проблему что они не перекрываются? –

+0

дал два примера –

0

Похожие по духу ответ, предложенный @ user1317221, вот мое предложение

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

# positions of the lines 
vert = 0.5 
horiz = 1.3 

Для отображения линий в центре сюжета, сначала вычислить горизонтальные и вертикальные расстояния между точками данных и линий, затем соответствующим образом отрегулируйте пределы.

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

Теперь вы можете построить на «значения линий», либо по осям (параметр line позволяет контролировать для возможного перекрытия):

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

или в качестве альтернативы в рамках черчения кадра :

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

НТН

Смежные вопросы