【问题标题】:Why does an ellipse change orientation when the graphics window is not square?当图形窗口不是正方形时,为什么椭圆会改变方向?
【发布时间】:2015-03-02 20:10:25
【问题描述】:

下面的代码 sn-p 创建二元正态数据,绘制它,然后沿着 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)

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

在方形图形窗口中,一切似乎都很好:

但是,如果调整窗口大小使其不再是方形的,椭圆似乎会远离直线:

导致这种情况发生的原因是什么?这是预期的行为吗?

【问题讨论】:

标签: r


【解决方案1】:

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


请注意,您的椭圆是基于样本的估计值,而不是真实的基础值,因此一开始并没有完全正确对齐。

df_ell2 <- data.frame(ellipse(0.7, scale=c(30,30), centre=c(30,30)), npoints=101)

现在绘制带有切线的椭圆以及它的长轴:

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)

希望切线可以让您看到椭圆正确对齐,但因纵横比而倾斜。

【讨论】:

  • 观察到的另一件可能有用的事情是,恰好位于椭圆上的点集在方形图上与在长方形图上相同。
猜你喜欢
  • 2022-01-08
  • 1970-01-01
  • 2020-03-21
  • 2012-04-21
  • 1970-01-01
  • 1970-01-01
  • 2015-05-19
  • 2018-09-05
  • 1970-01-01
相关资源
最近更新 更多