我是编程/ R的新手,我遇到了一个非常不寻常的问题。我制作了一个散点图,我想简单地将x y轴放在图上0。但是,当我使用abline时,它们稍微偏离了。我设法使用反复试验将它们设为0,但试图绘制其他线条变得不可能。
library('car')
scatterplot(cost~qaly, reg.line=FALSE, smooth=FALSE, spread=FALSE,
boxplots='xy', span=0.5, xlab="QALY", ylab="COST", main="Bootstrap",
cex=0.5, data=scat2, xlim=c(-.05,.05), grid=FALSE)
abline(v = 0, h = 0)
这会给出略微向左和低于0的线。
这是一个返回的图像: (因为我很新,我无法发布图像)
我发现这些值将行放在0:
abline(v=0.003)
abline(h=3000)
提前感谢您的帮助!
答案 0 :(得分:0)
使用@ Laterow的示例,重现问题
require(car)
set.seed(10)
x <- rnorm(1000); y <- rnorm(1000)
scatterplot(y ~ x)
abline(v=0, h=0)
scatterplot
似乎正在重置退出时的par
设置。您可以使用locator(1)
来检查这一点,例如{-3,-3}
我得到
# $x
# [1] -2.469414
#
# $y
# [1] -2.223922
@joran指出,reset.par = FALSE
是最简单的方法
scatterplot(y ~ x, reset.par = FALSE)
abline(v=0, h=0)
在?scatterplot
中,它表示...
已传递给plot
,这意味着您可以使用plot
非常有用的panel.first
和panel.last
论据(等等)。
scatterplot(y ~ x, panel.first = {grid(); abline(v = 0)}, grid = FALSE)
请注意,如果你要做基本的
scatterplot(y ~ x, panel.first = abline(v = 0))
您将无法看到该行,因为默认scatterplot
grid
会覆盖该行,因此您可以将其关闭,首先绘制grid
然后执行abline
。
您也可以在abline
中执行panel.last
,但这可能会超出您的观点,因此可能并不理想。