嗨,
我将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
如何定义刻度线吗?