r - 如何获得R轮廓函数来绘制小数
问题描述
我正在尝试绘制由两个高斯组成的函数的轮廓,一个以 (2, 2) 为中心,另一个以 (-2, -2) 为中心。这是我的代码。
k1 <- 2
k2 <- 2
mu1 <- rbind(2, 2)
mu2 <- rbind(-2, -2)
sigma1 <- rbind(c(.6, 0), c(0, .6))
sigma2 <- rbind(c(.3, 0), c(0, .3))
det1 <- det(sigma1)
det2 <- det(sigma2)
inv1 <- solve(sigma1)
inv2 <- solve(sigma2)
x <- runif(1000, -5, 5)
y <- runif(1000, -5, 5)
w <- rbind(x, y)
ratio <- function(v){
quotient <- log((2*pi)^(-k1/2)*det1^(-1/2)*(exp((-1/2)*t(v-mu1)%*%inv1%*%(v-mu1))))/log((2*pi)^(-k2/2)*det2^(-1/2)*(exp((-1/2)*t(v-mu2)%*%inv2%*%(v-mu2))))
return(quotient)
}
z <- apply(w, 2, ratio)
round.z <- round(z, digits=0)
df <- cbind(x, y, z, round.z)
df <- as.data.frame(df)
grid <- with(df, interp(x, y, z))
contour(grid, levels=0:10, asp=1)
但是当我绘制这些轮廓时,我只会得到具有整数值的轮廓。它看起来像这样:
在第一个象限中应该有更多相似的轮廓,这些轮廓具有十进制值(因为我正在取一个比率),但它们没有出现。我似乎无法找到如何让轮廓()来绘制小数。有谁知道如何解决这个问题?
解决方案
正如 user2554330 评论的那样,我可以使用 levels=c((0:10)/10, 2:10)。谢谢他们!
推荐阅读
- docker - ES Docker 容器未加入另一个具有相同集群名称的 docker 容器
- javascript - 轴标签/标题不出现 plotly.js
- html - iphone X浏览器在输入文本期间冻结
- django - Django admin - 结合两个模型
- html - AMP 验证程序错误
- java - 动态添加行时 TreeTableView 内容消失
- python - 在 python 中实现 SVM One-vs-all 时出现问题
- go - 如何阅读 http2 伪字段
- java - 从edittext中的任何位置删除最后添加的字符
- javascript - 是否可以制作一个自动将文本颜色更改为背景对比度的Javascript程序?