R中的线函数

Posted

技术标签:

【中文标题】R中的线函数【英文标题】:Line functions in R 【发布时间】:2010-11-08 17:09:48 【问题描述】:

我想知道是否可以使用函数在 R 中绘制三条线。例如,我怎样才能获得这些功能:

3x+1 
4x+2
x+1 

显示在 r 中的同一张图上?

【问题讨论】:

【参考方案1】:

您还可以使用curve 函数。例如:

curve(3*x+1, from=-5, to=5)
curve(4*x+2, add=T)
curve(x+1, add=T)

这里的 add 参数导致图被放在同一个图上

【讨论】:

【参考方案2】:

这是使用 matplot 的另一种方式:

> x <- 0:10
> matplot(cbind(x, x, x), cbind(3*x+1, 4*x+2, x+1), 
          type='l', xlab='x', ylab='y')

matplot(X, Y, ...) 采用两个矩阵参数。 X 的每一列都针对 Y 的每一列绘制。

在我们的例子中,X 是一个 11 x 3 矩阵,每列是 0 到 10 的序列(我们每行的 x 值)。 Y 是一个 11 x 3 矩阵,每列计算 x 向量(根据您的线方程)。

xlabylab 只是标记 x 和 y 轴。 type='l' 指定要绘制的线条(通过在 R 提示符下键入 ?matplot?plot 查看其他选项)。

matplot 的一个好处是默认值可以很好地绘制多条线——它为每条线选择不同的颜色和样式。这些也可以修改:请参阅 ?matplot(和 lty 了解更多详细信息)。

【讨论】:

【参考方案3】:

首先确定界限,比如 0 到 100,然后绘制一个包含这些点的空白图:

plot(c(0,100), c(0,100))

当然可能带有可选参数,例如axes=xlab=ylab=等,以控制轴的各种细节和标题/标签;然后,在每一行中添加abline(a, b),其中 b 是斜率,a 是截距,因此,在您的示例中:

abline(1, 3)
abline(2, 4)
abline(1, 1)

当然还有更多细节可以控制,比如颜色(col=可选参数)、线型(lty=)和宽度(lwd=)等,但这是它的要点。

【讨论】:

plot(c(0, 100), c(0, 100), type='n') 更好。 'n' 阻止任何输出,只显示一个空图(否则你会在原点和 (100,100) 处绘制两个点)。然后下面的 abline 命令将显示这些行。

以上是关于R中的线函数的主要内容,如果未能解决你的问题,请参考以下文章

如何从 OpenCV C++ 中的 HoughLines 函数输出中绘制所需的线?

使用 tidyverse + sf R 创建每个多边形的线密度

画一条可以像 Swift 中的 Xcode 助手编辑器一样伸展的线

C:找到最长的线

Plotly R中的可移动线

如何在r中的箱线图之间创建单独的线图