R - Как получить данные из интерполированного контурного графика - PullRequest
0 голосов
/ 28 января 2019

Я использую "R" уже некоторое время.Моя настоящая проблема находится в области 3D-графиков и интерполяции.

У меня есть фрейм данных с 3D-данными.Допустим, это площадь и соответствующая высота.У меня есть только несколько интересных мест, и я использую функцию интерполяции.3D-график дает мне тепловую карту и контурные линии.

Теперь меня интересует контурная линия постоянной высоты, и я хочу получить ее координаты X и Y.Например, фактические данные интерполяции не содержат всех точек, которые точно равны нулю.

test = data.frame(x = rep(c(1,2,3), 3), y = c(rep(1,3),rep(2,3),rep(3,3)), z = rnorm(9, 0, 1))
mat = as.matrix(interp(test$x, test$y, test$z, nx = 10, ny = 10, duplicate = "strip"))[[3]]

image(mat)
contour(mat, add = TRUE)
contour(mat, add = TRUE, levels = 0, lwd = 3)

Я пробовал несколько подходящих функций, таких как lm, loess, lowess, nls и так далее.Но ни один из них не работает для меня.Либо это для двумерных данных, либо он дает мне совершенно другие точки данных, чем контурные линии.

Любые идеи?

С наилучшими пожеланиями,

Lalle

1 Ответ

0 голосов
/ 28 января 2019

Хорошо, после поиска в течение нескольких дней я наконец нашел решение.

Функция "contourLines" из пакета "grDevices" возвращает список всех интерполированных строк.

...