2009-07-07 109 views
2

我想知道是否可以使用函数在R中绘制三行。例如,我怎么能得到的功能:R中的行函数

3x+1 
4x+2 
x+1 

要显示在r?

回答

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=)等,但这是它的要点。

+1

情节(C(0,100),C(0,100),类型= 'N')是更好。 'n'可以防止任何输出,只显示一个空的图(否则你会在原点和(100,100)处得到两个点)。以下abline命令将显示这些行。 – ars 2009-07-08 02:24:38

0

下面是使用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了解更多详情)。

2

您还可以使用curve功能。例如:

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

在这里,附加参数导致要在同一曲线图把曲线