以下2行R代码有什么区别:

时间:2012-12-20 07:15:13

标签: r plot

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个绘图函数参数之间有什么区别?

5 个答案:

答案 0 :(得分:8)

plot(x,y)x用作x值,y用作y值。

plot(x~y)y用作x值,x用作y值。

阅读帮助页面:?plot?plot.formula

答案 1 :(得分:6)

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

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

help(plot.formula)

答案 2 :(得分:2)

在这种情况下

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

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

谢谢@ hd1的答案。在绘制时,它确实帮助我理解~,之间的区别。

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

试试这个:

boxplot(y~x)boxplot(x~y)

不同

boxplot(y,x)将订单更改为boxplot(x,y)会更改图表中的索引。

由于