Вопрос 1: я бы использовал линейную модель для добавления плоскостей, как я описываю здесь и как авторы пакета используют в виньетке а>:
plot3d <- scatterplot3d(x, y, z, ... )
model <- lm(y ~ x + z)
plot3d$plane3d(model)
Вы можете указать перехваты xyz вручную, но я не рекомендую это делать, так как это приводит к несколько странному поведению. Вы также можете построить сложные сетчатые поверхности, используя функцию, предназначенную для точек, но, как утверждают авторы в виньетке:
Обратите внимание, что scatterplot3d предназначен для создания точечных диаграмм, а не для рисования поверхностей, он не очень удобен для этой цели, для чего мы обычно предпочитаем использовать функцию R persp.
Вопрос 2: Вектор с тремя элементами является контейнером для перехватов xyz. Вы можете указать их вручную, как вы сделали выше с s3d$plane3d(6,0,0)
. Коэффициенты x и y предназначены для отображения этих двух переменных на плоскости.
Чтобы сделать определенные плоскости вручную, вот предложение от Уве сам:
spd <- scatterplot3d(1:10, 1:10, 1:10)
# xy
spd$plane3d(0.3549896,0,0,lty="dotted")
# yz
x0 <- 5
xyz1 <- spd$xyz.convert(rep(x0, 6), rep(0, 6), seq(0, 10, by=2))
xyz2 <- spd$xyz.convert(rep(x0, 6), rep(10, 6), seq(0, 10, by=2))
segments(xyz1$x, xyz1$y, xyz2$x, xyz2$y, lty="dotted")
xyz1 <- spd$xyz.convert(rep(x0, 6), seq(0, 10, by=2), rep(0, 6))
xyz2 <- spd$xyz.convert(rep(x0, 6), seq(0, 10, by=2), rep(10, 6))
segments(xyz1$x, xyz1$y, xyz2$x, xyz2$y, lty="dotted")
# zx
y0 <- 6
xyz1 <- spd$xyz.convert(rep(0, 6), rep(y0, 6), seq(0, 10, by=2))
xyz2 <- spd$xyz.convert(rep(10, 6), rep(y0, 6), seq(0, 10, by=2))
segments(xyz1$x, xyz1$y, xyz2$x, xyz2$y, lty="dotted")
xyz1 <- spd$xyz.convert(seq(0, 10, by=2), rep(y0, 6), rep(0, 6))
xyz2 <- spd$xyz.convert(seq(0, 10, by=2), rep(y0, 6), rep(10, 6))
segments(xyz1$x, xyz1$y, xyz2$x, xyz2$y, lty="dotted")
Точки сначала выбираются с регулярным интервалом, соответствующим сетке в пространстве xyz, используя встроенную функцию преобразования координат xyz, а затем сопоставляют сегменты между ними, создавая сетки:
![введите здесь описание изображения](https://i.stack.imgur.com/YhNvD.png)
person
Adam Erickson
schedule
17.10.2015