我正在使用 绘制一个 3D 直方图hist3D()
,并且想要更改xlab
以使其包含一个带下标的希腊字母。
我用了
xlab=expression(theta[1]).
它不起作用,我只是在标签中得到字符串“theta[1]”。另一方面,它只适用于常规的绘图命令。
那么如何在hist3D()
绘图中引入下标希腊字母呢?
(hist3D()
在 plot3D 库中)
另一种解决方法是使用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
对于这个例子来说非常好。标签不会像常规标签那样旋转一圈。
该hist3D
函数不接受轴标签的表达式。一种解决方法是使用 Unicode 字符作为 theta,θ。
# 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。
一种解决方法是使用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)