我有一些来自实验室设备的数据,这些数据可以用等值线图/热图表示为矩阵。
我想尝试用rayshader包在R中演示这些数据。
我的问题是,数据的形状远不是正方形,矩阵是33行乘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()有没有办法通过操纵x/y长宽比使rayshader将其绘制为正方形?或者以相同的比例绘制它们(一个维度收集数据的速度比另一个快得多)?我在文件里找不到任何东西。
在本例中,我尝试命名行和列,以便在10分钟内收集它们,但这不会改变结果。
最终结果应该类似于:
library(plotly)
set.seed(1742)
plot_ly(z = ~matrix(rnorm(10000), nrow = 10)) %>%
add_surface()

非常感谢。
发布于 2019-10-28 09:23:52
rayshader::plot_3d()的解决方案是使用scale = c(x, y, z),它会改变x/y/z的纵横比。这是隐藏的,但并不需要太多的努力就能找到答案。它是由plot_3d()调用的rgl::par3d()中的设置。
然而,我无法让plot_map()正常工作。当我尝试添加rgl::par3d()使用的参数asp = 1时,它抛出了错误。
https://stackoverflow.com/questions/58237741
复制相似问题