2

我有一些来自实验室设备的数据,可以通过等高线图/热图表示为矩阵。

我想尝试用rayshader包在 R 中说明这些数据。

我的问题是数据的形状远非正方形,矩阵是 33 行 x 48003 列。当我用它绘制时,rayshader我得到一条细线:

library(dplyr)
library(rayshader)

set.seed(1742)
df <- matrix(rnorm(10000), nrow = 10)
rownames(df) <- 1:10
colnames(df) <- seq(0.01, 10, 0.01)

df %>%
  sphere_shade(texture = "desert") %>%
  plot_map()

有没有办法rayshader通过操纵 x/y 纵横比将其绘制为正方形?或者以等效的比例绘制它们(一个维度收集数据的速度比另一个维度快得多)?我在文档中找不到任何内容。

在此示例中,我尝试命名行和列,以便在 10 分钟内收集它们,但这并没有改变结果。

最终结果应类似于:

library(plotly)

set.seed(1742)
plot_ly(z = ~matrix(rnorm(10000), nrow = 10)) %>%
  add_surface()

在此处输入图像描述

非常感谢。

4

1 回答 1

1

解决方案rayshader::plot_3d()是使用scale = c(x, y, z),这将改变 x/y/z 纵横比。这是隐藏的,但并没有花太多的精力来找到答案。它是 中的一个设置rgl::par3d(),由 调用plot_3d()

但是,我无法plot_map()上班。当我尝试添加由asp = 1使用的参数时rgl::par3d(),它抛出了错误。

于 2019-10-28T01:23:52.347 回答