使用 persp3d 一次显示多个绘图
Displaying multiple plots at once with persp3d
我用 persp3d
函数和 open3d
得到了许多光谱数据图,我可以用不同的 windows 打开它们(见下文)。
我的问题是是否有可能通过提供一些行数和列数在同一个 window 中打开它们?
如果是这样,是否还有可能我用鼠标进行的旋转适用于所有显示的图?
下面我已经找到了一种方法,可以在不同的windows中打开它们而不重叠,所以我可以单独检查它们(代码中:"t_number"和"w"是对应的向量分别到 "Fnumber" 矩阵)。
我试着用 plot3d
和 mfrow3d
命令来做,结果是一个 window 有很多图(就像发布到 this question 的答案一样,但是plot3d 函数无法提供足够的数据图(光谱数据看起来与 persp3d
中的数据不同)。
open3d(
persp3d(t_134, w, F134, col = col,
xlab = "", ylab = "", zlab = "", main = "F134",
)
)
open3d(
persp3d(t_135, w, F135, col = col,
xlab = "", ylab = "", zlab = "", main = "F135"
)
)
[...]
如何将它们绘制在一个 window 中并旋转它们?
您对 open3d( ... plot function ...)
的使用是错误的。 open3d
的参数控制 window 的特征。您不应该将 rgl
绘图结果传递给它。
要在单个 window 中打开多个绘图,正确调用 open3d
后,调用 mfrow3d(rows, cols, sharedMouse = TRUE)
设置绘图数组。他们都会对其中任何一个中的鼠标操作做出响应。
例如:
library(rgl)
x <- rnorm(100)
y <- rnorm(100)
z <- rnorm(100)
open3d()
mfrow3d(2, 2, sharedMouse = TRUE)
plot3d(x, y, z, col = "red")
plot3d(x, y, z, col = "green")
plot3d(x, y, z, col = "blue")
plot3d(x, y, z, col = "yellow")
如果您不想要大小相等的绘图数组,还有其他函数:layout3d
,等等
我用 persp3d
函数和 open3d
得到了许多光谱数据图,我可以用不同的 windows 打开它们(见下文)。
我的问题是是否有可能通过提供一些行数和列数在同一个 window 中打开它们?
如果是这样,是否还有可能我用鼠标进行的旋转适用于所有显示的图?
下面我已经找到了一种方法,可以在不同的windows中打开它们而不重叠,所以我可以单独检查它们(代码中:"t_number"和"w"是对应的向量分别到 "Fnumber" 矩阵)。
我试着用 plot3d
和 mfrow3d
命令来做,结果是一个 window 有很多图(就像发布到 this question 的答案一样,但是plot3d 函数无法提供足够的数据图(光谱数据看起来与 persp3d
中的数据不同)。
open3d(
persp3d(t_134, w, F134, col = col,
xlab = "", ylab = "", zlab = "", main = "F134",
)
)
open3d(
persp3d(t_135, w, F135, col = col,
xlab = "", ylab = "", zlab = "", main = "F135"
)
)
[...]
如何将它们绘制在一个 window 中并旋转它们?
您对 open3d( ... plot function ...)
的使用是错误的。 open3d
的参数控制 window 的特征。您不应该将 rgl
绘图结果传递给它。
要在单个 window 中打开多个绘图,正确调用 open3d
后,调用 mfrow3d(rows, cols, sharedMouse = TRUE)
设置绘图数组。他们都会对其中任何一个中的鼠标操作做出响应。
例如:
library(rgl)
x <- rnorm(100)
y <- rnorm(100)
z <- rnorm(100)
open3d()
mfrow3d(2, 2, sharedMouse = TRUE)
plot3d(x, y, z, col = "red")
plot3d(x, y, z, col = "green")
plot3d(x, y, z, col = "blue")
plot3d(x, y, z, col = "yellow")
如果您不想要大小相等的绘图数组,还有其他函数:layout3d
,等等