首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R Scatterplot3D中改变ylab的位置

在R Scatterplot3D中改变ylab的位置
EN

Stack Overflow用户
提问于 2013-12-17 15:01:10
回答 2查看 3.8K关注 0票数 8

我正在使用R scatterplot3D,我需要在标签中使用表达式(),因为我必须使用一些希腊字母;

我的问题是:是否有方法将y.lab名称向下或沿轴(在对角线位置)写入?我去了帮助和包裹描述,但似乎没有什么是可行的;事先谢谢您的帮助,玛丽亚

代码语言:javascript
复制
library(scatterplot3d)
par(mfrow=c(1,1))
A <- c(3,2,3,3,2)
B <- c(2,4,5,3,4)
D <- c(4,3,4,2,3)
scatterplot3d(A,D,B, xlab=expression(paste(x[a],"-",x[b])), 
                     ylab=expression(x[a]), 
                     zlab=expression(sigma^2))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-17 16:43:54

由于scatterplot3d()函数构造绘图的方式,您不能使用任何经典的方法。它基本上是绘制在一个经典的地块面板上,这意味着轴标签被绑定到经典位置。Z标签打印在真实的左Y轴,y标签打印在真正的右Y轴。

您可以使用text()来解决以下问题:

  • 使用par("usr")求X和Y坐标的极限
  • 计算要在标签上的位置(例如,水平位置的90%和垂直位置的8% )。
  • 使用text()放置它(可能使用参数srt来转换标签)

这使得它更加通用,因此您不会为每一个新的情节尝试不同的值。

例子:

代码语言:javascript
复制
scatterplot3d(A,D,B, xlab=expression(paste(x[a],"-",x[b])),
                     ylab="",
                     zlab=expression(sigma^2))
dims <- par("usr")
x <- dims[1]+ 0.9*diff(dims[1:2])
y <- dims[3]+ 0.08*diff(dims[3:4])
text(x,y,expression(x[a]),srt=45)

给出

票数 7
EN

Stack Overflow用户

发布于 2013-12-17 16:43:51

代码语言:javascript
复制
scatterplot3d(A,D,B, xlab=expression(paste(x[a],"-",x[b])), 
                      ylab="", 
                      zlab=expression(sigma^2))
mtext( expression(x[a]), side=4,las=2,padj=18, line=-4)

我们确实需要使用相当极端的参数值才能在转换后的空间投影中的正确位置得到表达式。

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

https://stackoverflow.com/questions/20637484

复制
相关文章

相似问题

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