R语言中函数lines和abline的区别?

Python013

R语言中函数lines和abline的区别?,第1张

函数lines()其作用是在已有图上加线,命令为lines(x,y),其功能相当于plot(x,y,type="1")

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