4

我正在使用 绘制一个 3D 直方图hist3D(),并且想要更改xlab以使其包含一个带下标的希腊字母。

我用了

xlab=expression(theta[1]). 

它不起作用,我只是在标签中得到字符串“theta[1]”。另一方面,它只适用于常规的绘图命令。

那么如何在hist3D()绘图中引入下标希腊字母呢?

hist3D()在 plot3D 库中)

4

3 回答 3

3

另一种解决方法是使用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对于这个例子来说非常好。标签不会像常规标签那样旋转一圈。 在此处输入图像描述

于 2015-01-20T01:42:17.013 回答
2

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。

在此处输入图像描述

于 2013-12-13T13:43:04.837 回答
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)
于 2013-12-13T10:55:56.363 回答