Как получить функцию контура R для построения десятичных знаков - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь построить контуры функции, состоящей из двух гауссиан, один с центром в (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)

Но когда я рисую эти контуры, я просто получаю контуры с целыми числами. Это выглядит так: введите описание изображения здесь

В первых квадрантах должно быть больше похожих контуров с десятичными значениями (потому что я использую соотношение), но они не появляются. Кажется, я не могу найти, как получить contour () для построения десятичных знаков. Кто-нибудь знает, как решить эту проблему?

1 Ответ

0 голосов
/ 04 августа 2020

Как прокомментировал user2554330, я могу использовать уровни = c ((0:10) / 10, 2:10). Спасибо им!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...