当图形窗口不是方形时,为什么椭圆会改变方向?

Rob*_*ong 9 r

下面的代码片段创建了双变量法线数据,绘制它然后绘制椭圆以及线y = x

require(ellipse); require(MASS)

mu    <- c(30,30)
Sigma <- matrix(c(900,630,630,900),2,2,byrow=TRUE)
dt    <- data.frame(mvrnorm(n=1000,mu,Sigma))
names(dt) <- c("x","y")


plot(dt$x,dt$y)

df_ell <- data.frame(ellipse(cor(dt$x, dt$y), scale=c(sd(dt$x),sd(dt$y)), centre=c(mean(dt$x),mean(dt$y))))
lines(df_ell)
abline(a=0,b=1)
Run Code Online (Sandbox Code Playgroud)

由于协方差结构和相等的平均值,线y = x应该穿过椭圆的长轴.

在方形图形窗口中,一切似乎都很好: 在此输入图像描述

但是,如果调整窗口大小以使其不再是正方形,则椭圆似乎将其自身定位为远离线条:

在此输入图像描述

造成这种情况的原因是什么?是预期的行为吗?

pet*_*ete 10

这是一种视错觉.当坐标不是正方形时,椭圆看起来有点奇怪.


请注意,您的椭圆基于样本的估计值,而不是真正的基础值,因此它不能正确对齐开始.

df_ell2 <- data.frame(ellipse(0.7, scale=c(30,30), centre=c(30,30)), npoints=101)
Run Code Online (Sandbox Code Playgroud)

现在用切线和长轴绘制椭圆:

plot(dt$x,dt$y)
lines(df_ell2)
abline(0, 1)
abline(df_ell2[1,1]*2, -1)
abline(df_ell2[51,1]*2, -1)
Run Code Online (Sandbox Code Playgroud)

椭圆,长轴和切线

希望切线让您看到椭圆正确对齐,但是由宽高比扭曲.

  • 观察到的另一个可能有用的事情是,正方形图上正好位于椭圆上的点集与长方形图上的点相同. (3认同)