函数abline()可以在图上加直线,其使用方法有四种格式。
(1)abline(a,b)
表示画一条y=a+bx的直线
(2)abline(h=y)
表示画出一条过所有点得水平直线
(3)abline(v=x)
表示画出一条过所有点的竖直直线
(4)abline(lm.obj)
表示绘出线性模型得到的线性方程
lines()函数做的是一般连线图,其输入是x,y的点向量。
abline()函数做的是回归线,其输入是回归模型对象。
在 iMac 上使用最新版本的 Rstudio版本 1.0.44 – © 2009-2016 RStudio, Inc. Mozilla/5.0(Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko)
我注意到 rmarkdown 文件的 notebook 功能。生成绘图时,不再使用通常的“绘图窗口”,并且在代码块下方生成绘图。
我对以下代码有错误:
plot(seq(1,10,1))
abline(a=0,b=1)
错误显示在代码块下方:
Error in int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) : plot.new has not been called yet
但是,在编织整个 rmarkdown 文件时,没有错误。
所以我想知道如何避免错误:
使用其他代码
使用“绘图窗口”
或其他方式。
【问题讨论】:
我无法重现该错误。只有当我将两个命令放在单独的块中时才会出现错误。
我认为是因为我一行一行地运行代码。在 rmarkdown 中运行整个 R 块时,我没有收到错误。
标签: r plot rstudio r-markdown
【解决方案1】:
以下将起作用
{plot(seq(1,10,1))
abline(a=0,b=1)}
【讨论】:
添加一些解释,说明此答案如何帮助 OP 解决当前问题
我也不明白它为什么会起作用,但可以验证它是否起作用。一定和 Rstudio markdown 环境有关。
用大括号括起来可确保所有行都被视为一个块。对于一个不相关的问题,这个答案很好地解释了它。 ***.com/a/28758675/1454785
【解决方案2】:
这也有效
plot(seq(1,10,1))+
abline(a=0,b=1)
【讨论】:
【解决方案3】:
在 RStudio 中,Preferences ->R Markdown 中有一个设置为“显示所有 R Markdown 文档的内联输出”。要消除该错误,请确保未选中此项。
【讨论】:
【解决方案4】:
在带有 R 内核的 jupyter 中,如果像 XR SC 提到的那样逐行运行代码,您将看到该错误。
【讨论】:
【解决方案5】:
这发生在我身上,因为我在我的情节中添加了一个无效参数。
ggplot(df, aes(x=sales)) + geom_histogram() + title('Plot Title')
复制
并且应该一直在执行:
ggplot(df, aes(x=sales)) + geom_histogram() + ggtitle('Plot Title')