我正在使用hist3D绘制3D直方图,并且想要更改xlab,以便它包含带有下标的希腊字母。如何在hist3D上打印标签上的希腊字母?
我用
xlab=expression(theta[1]).
它不工作,我只是得到的标签字符串 “[1] THETA”。另一方面,它可以正常工作,只需要经常绘图命令。
那么如何才能将下标希腊字母引入hist3D图?
(hist3D来自PLOT3D格式库)
我正在使用hist3D绘制3D直方图,并且想要更改xlab,以便它包含带有下标的希腊字母。如何在hist3D上打印标签上的希腊字母?
我用
xlab=expression(theta[1]).
它不工作,我只是得到的标签字符串 “[1] THETA”。另一方面,它可以正常工作,只需要经常绘图命令。
那么如何才能将下标希腊字母引入hist3D图?
(hist3D来自PLOT3D格式库)
一种解决方法是使用scatterplot3d
:
z <- seq(-10, 10, 0.01)
x <- cos(z)+1
y <- sin(z)+1
scatterplot3d(volcano, highlight.3d=TRUE, col.axis="blue",
col.grid="gray", main="scatterplot-greeks", pch=21,
xlab=expression(theta[1]),
ylab=expression(beta[2]),
zlab=expression(alpha[3]),cex.lab=1.5)
我喜欢persp更好,它绘制比这更好的东西...但谢谢。 – kloop
的hist3D
功能不接受轴标签表达式。一种解决方法是对theta,θ使用Unicode字符。
# example data
library(plot3D)
x <- seq(-pi, pi, by = 0.2)
y <- seq(-pi, pi, by = 0.3)
grid <- mesh(x, y)
z <- with(grid, cos(x) * sin(y))
hist3D(z = z, x = x, y = y, border = "black", xlab = "θ1")
这将显示一个符号THETA,但没有下标1
另一个解决方法是使用text3D
函数从同一plot3D
包。它接受数学表达式作为标签,所以我们可以照常编写expression(theta[1])
。在此解决方法唯一的小问题是要找到
# example data
library(plot3D)
x <- seq(-pi, pi, by = 0.2)
y <- seq(-pi, pi, by = 0.3)
grid <- mesh(x, y)
z <- with(grid, cos(x) * sin(y))
hist3D(z = z, x = x, y = y, border = "black", ticktype = "detailed", xlab = "", ylab="y", zlab="z")
text3D(2, -5, 0, labels = expression(theta[1]), add = TRUE, adj = 1)
我发现2,-5,0
是这个例子相当好我们的标签的合适坐标。标签不像标准标签那样旋转。
你应该添加一个可重复的例子,并提及你使用的软件包。 – agstudy
函数'hist3D'调用函数'persp'。从'?persp',关于'xlab':'这些必须是字符串;表达式不被接受。' –
谢谢@SvenHohenstein – kloop