我正在使用hist3D绘制3D直方图,并希望更改xlab,使其包含带下标的希腊字母。
我用过
xlab=expression(theta[1]).
它不起作用,我只是在标签中得到字符串“theta [1]”。另一方面,它只适用于常规绘图命令。
那么如何将下标的希腊字母引入hist3D图?
(hist3D来自plot3D库)
答案 0 :(得分:2)
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。
答案 1 :(得分:2)
另一种解决方法是使用同一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
对于这个例子来说非常好。标签不会像常规标签那样旋转一个。
答案 2 :(得分:0)
解决方法是使用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)