如何在R中绘制abline的值?

5
我使用了以下代码制作这个图表:
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.) 如何缩放我的图表以使两条线都出现在中间?


你所说的“abline”的值是什么?有任何示例代码吗? - user1317221_G
不好意思,我不明白您所说的“abline值”的含义。 - user1317221_G
生成图表的示例代码?你想要的示例(如果需要,可以使用画笔!)是什么? - Joris Meys
这是我的代码: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)),但我不知道如何将abline的值打印到坐标轴上。 - Tunc Jamgocyan
请使用以下代码编写您的程序,并确保其具有图像中所示的相同格式:http://i.imgur.com/9Dd9d.png - Tunc Jamgocyan
2个回答

7

将绘图比例尺更改为使线在中间,更改坐标轴即可。

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)

我假设您所说的“by value”是指该线与x轴相交的地方?类似于text? 例如:

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

如果您希望x轴上有标签,请尝试以下操作:
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))

这是我的方法:
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")axis(2, las = 1) axis(2, 0.78, 0.78, las = 1) axis(1, 1.77, 1.77)
这导致了以下图像:Graphic你可以看到0.49和0重叠了...我该如何解决这个问题,使它们不重叠?
- Tunc Jamgocyan

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

HTH


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接