在具有对数变换的x和y轴的图上创建二元正态分布椭圆

时间:2016-02-08 09:15:04

标签: r logging plot ellipse

虽然我已经找到了很多关于如何在现有绘图上绘制二元正态分布椭圆的答案,但我有一个关于将这个椭圆绘制到现有绘图上的问题,x轴和y轴是对其进行对数变换的。< / p>

作为一个例子,我有以下数据,我添加了一个椭圆

library(mixtools)
library(truncnorm)
x<-rtruncnorm(n=100, a=0, b=20)
y=1+.3*x+.3*rnorm(100)
data<-cbind(x,y)
mu <-c(mean(x), mean(y)) 
sigma <- var(data) 
plot(data)
ellipse(mu, sigma, alpha=0.1, npoints = 200, newplot = FALSE)

enter image description here

但是,我的实际数据要求我使用log变换的x轴和y轴,如此

plot(data,log="xy")

当绘制“椭圆”函数时,我不再获得椭圆

ellipse(mu, sigma, alpha=0.1, npoints = 200, newplot = FALSE)

enter image description here

将“log”添加到椭圆函数规范也没有选项

ellipse(mu, sigma, alpha=0.1, npoints = 200, newplot = FALSE,log="xy")

警告讯息:     在plot.xy(xy.coords(x,y),type = type,...)中:   “log”不是图形参数。

有人可以帮我解决这个问题吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

car可以处理对数转换空间中的省略号。这是它能做什么的味道。一行没有log参数,而几乎完整的椭圆是log参数。

library(car)
plot.default(data, log = "xy")
car::ellipse(center = log(mu), shape = sigma, radius = 3, center.pch = NULL)

enter image description here