我想知道是否可以使用函数在 R 中绘制三条线。例如,我怎样才能获得这些功能:
3x+1
4x+2
x+1
显示在 r 中的同一图表上?
首先确定边界,比如 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=
)等,但这就是它的要点。
您也可以使用该curve
功能。例如:
curve(3*x+1, from=-5, to=5)
curve(4*x+2, add=T)
curve(x+1, add=T)
这里的 add 参数导致图被放在同一个图上
这是使用 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'
指定要绘制的线条(通过键入或?matplot
在?plot
R 提示符下查看其他选项)。
matplot 的一个好处是默认值可以很好地绘制多条线——它为每条线选择不同的颜色和样式。这些也可以修改:请参阅?matplot
(以及lty
更多详细信息)。