Я пытаюсь реализовать 3D-график в R, используя функцию persp()
пакета rsm
. Я хотел бы добавить контурные линии к основе графика, например, как здесь: Нарисовать линию после persp, используя rsm в R
В документации rsm
говорится, что это должно быть возможно:
В persp контурные линии могут быть добавлены с помощью аргумента контуров. Это может быть логическое или символьное значение, или список. Если логическое значение и TRUE, черные контурные линии по умолчанию добавляются к нижней поверхности блока.
https://cran.r-project.org/web/packages/rsm/rsm.pdf
Когда я это делаю, я получаю предупреждение и никаких контуров, хотя 3D-график генерируется просто отлично: "Warning message: In persp.default(a, t, q, contours = ("top") : "contours" is not a graphical parameter
Мне удалось заставить этот шаблон работать, используя код здесь: Есть ли способ создать трехмерный график с контурами под графиком в R?
Но было бы неплохо узнать, почему пакет rsm
не работает (кажется) так, как рекламируется, если только я не делаю что-то не так?
Вот мой MWE:
library(rsm)
surface <- function(a, t){
q <- (4*40)/(4*a^2 + 4*a*t^2 + t^4 + 4*40)
}
a <- seq(.00001, 5, length= 20)
t <- seq(.00001, 5, length= 20)
q <- outer(a, t, surface)
persp(a, t, q,
contours=("top"))
persp(a, t, q,
contours=T)
rsm
persp()
на самом делеpersp.lm()
, а его первые два аргумента — объект lm и формула. Поскольку вы передаете векторы вpersp()
, вы фактически вызываетеgraphics::persp()
, у которого нет аргументаcontours
. Отсюда предупреждение. Посмотрите?rsm::persp.lm
для получения дополнительной информации. - person meriops   schedule 17.12.2020