Hy там,
Я использую persp
для 3D-графика, и я пытаюсь выяснить, как persp
определяет тики, когда установлен параметр ticktype="detailed"
.
Я хочурисовать линии в поле вокруг поверхности, соответствующей галочкам.До сих пор я рисую поверхность без каких-либо меток и осей и добавляю все линии и оси после слов.Чтобы было понятно, что я сделал -> пример кода:
z <- matrix(rep(1:10, each=10), nrow=10, ncol=10)
x.axis <- 1:nrow(z)
y.axis <- 1:ncol(z)
max.y <- max(y.axis)
# Drawing the surface without the axes and no lines on the surface
pmat <- persp(z = z, x = x.axis, y = y.axis ,
lphi = 100, phi = 25, theta = -30,
axes=F,
border = NA, # no lines on the surface
col="deepskyblue",
expand = 0.5,
shade = 0.65)
Теперь я добавляю линии на поверхности разного цвета и оси с галочками и метками:
par(new=T)
pmat <- persp(z = z, x = x.axis, y = y.axis ,
lphi = 100, phi = 25, theta = -30,
ticktype = "detailed",
expand = 0.5,
cex.lab=0.75,
col=NA,
border="grey80")
par(new=F)
Чтобы получить линии на прямоугольнике вокруг поверхности, я использую следующее:
for (z_high in c(2,4,6,8)) {
lines(trans3d(x.axis, max.y, z_high, pmat) , col="black", lty=3)
}
Как видите, я использую собственный определенный вектор c(2,4,6,8)
, который представляет z-значения для линий прямоугольника вназад.Если входная поверхность теперь изменяется, я должен адаптировать этот вектор самостоятельно.Есть ли способ получить галочки для всех осей на графике persp
?Кто-нибудь знал, как persp
определяет галочки?