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 向量(根据您的线方程)。
xlab
和 ylab
只是标记 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 创建每个多边形的线密度