首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在rgl中,如何选择plot3d中刻度线的位置?

在rgl中,如何选择plot3d中刻度线的位置?
EN

Stack Overflow用户
提问于 2018-04-27 05:29:13
回答 1查看 731关注 0票数 1

在R中,

代码语言:javascript
复制
library(rgl)
m <- matrix(rnorm(300),100,3)
par3d(ignoreExtent=F)
plot3d(m,box=T,axes=F,xlab='',ylab='',zlab='')
axes3d(labels=F,tick=F,box=F)
gr <- grid3d('z')
par3d(ignoreExtent=T)
plot3d(cbind(m[,1:2],rgl.attrib(gr[1],'vertices')[1,3]),col='gray',add=T)

仍然打印带有数字的记号:

axes3d()中的tick=F参数不应该去掉刻度线和数字吗?

我想将x和y轴添加到图形的底部,而不是顶部。此外,当我使用axis3d()添加它们时,刻度线不再是正交的,而是相对于它们的平面倾斜45度,我认为这很难看。

代码语言:javascript
复制
par3d(ignoreExtent=F)
plot3d(m,box=T,axes=F,xlab='',ylab='',zlab='')
box3d()
axis3d('x--',labels=T,tick=T)
axis3d('y+-',labels=T,tick=T)
axis3d('z++',labels=T,tick=T)
gr <- grid3d('z')
par3d(ignoreExtent=T)
plot3d(cbind(m[,1:2],rgl.attrib(gr[1],'vertices')[1,3]),col='gray',add=T)

如果我必须走第二条路,如何摆脱盒子的前线?或者,是否有其他方法可以在所需位置打印默认刻度线(正交)?

EN

回答 1

Stack Overflow用户

发布于 2018-04-27 19:47:46

rgl中的轴有点混乱,而且不是很灵活。首先,有两种不同的类型:用axis3d绘制的和用rgl.bbox绘制的。只有第一种类型关注tick参数,您的第一个示例使用了第二种类型。

您可以通过设置marklen = 0, marklen.rel = FALSE来删除rgl.bbox轴中的刻度,但这会产生一个不幸的效果,即将数字放在框中。没有单独的参数来控制独立于刻度线长度的数字的放置。如果你根本不想要数字,那就使用xlen = 0, ylen = 0, zlen = 0

axis3d轴也不是很灵活。如果你想改变它们的方向,你需要修改这个函数。mpos数组保存每个刻度的坐标;更改它以使刻度指向您想要的方式。

关于长方体:如果你使用box3d()来绘制它,它是固定的。如果您想使用rgl.bbox样式,则必须使用该函数。您也可以使用segments3d()mtext3d()来构造您自己的轴,但它们不会像rgl.bbox轴那样四处移动。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50052093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档