1
x<- c(4,5,6,2,3,8,4,7)
y<- c(6,9,2,1,2,5,6,3)
plot(x,y)

plot(x~y)

2个绘图函数参数有什么区别?

4

5 回答 5

8

plot(x,y): x is used as x values and y is used as y values.

plot(x~y): y is used as x values and x is used as y values.

Read the help pages: ?plot and ?plot.formula.

于 2012-12-20T07:42:01.470 回答
6

如果您键入这些字母plot,您会看到一个函数定义,其核心是UseMethod("plot"). plot是一个“通用”函数,这意味着参数类决定了调用的调度方式。因此,R 将检查其第一个参数的类,x在 的情况下为(数字向量),在 的情况下为plot(x,y)x~y公式)plot(x~y)。调用了两个不同的函数:plot.default第一个实例和plot.formula第二个实例。plot.formula然后查看左侧(LHS)参数,在这种情况下为“x”,以进一步确定使用什么方法。

R中的公式通常可以读作“LHS依赖于RHS”或“LHS作为RHS分布”,因此x在绘图函数的parent.frame中将绘制到纵坐标(通常称为“y轴”)而 y 将位于横坐标(x 轴)上。看:

help(plot.formula)
于 2012-12-20T08:54:57.983 回答
2

在这种情况下

plot(x~y)  = plot(y,x)

这就是为什么你没有相同的结果。

于 2012-12-20T07:44:43.423 回答
1

plot(x~y)是一个公式,并且plot(x,y)正在为您的轴设置离散值...

于 2012-12-20T07:19:26.420 回答
0

感谢@hd1 的回答。在绘图时,它确实帮助我理解 和 之间的~区别,

@selvam,直接的区别是您正在交换轴。但也许这可能有助于理解@hd1 给出的解释意味着什么。

尝试这个:

boxplot(y~x)这不同于boxplot(x~y)

boxplot(y,x)交换顺序boxplot(x,y)将改变图中的索引。

谢谢

于 2015-03-12T23:01:50.027 回答