R:以3D绘制平面

时间:2019-10-06 12:38:34

标签: r plot 3d plane

我正在尝试将z = 0平面添加到3D图中。我使用的代码是

const locale = navigator.language
            || 'en-US';   
React.useEffect(() => {
    addLocaleData(require( `intl/locale-data/jsonp/${locale}` ));   
}, []);

但是z = 0平面没有出现。enter image description here

如果我用

晃动飞机
library(plot3D)
zero = matrix(0, 20, 20)
persp3D(x=seq(1,20), y=seq(1,20), z = Delta_B, theta = 20, xlab = "D", ylab = "IR", zlab = "B increment")
persp3D(x=seq(1,20), y=seq(1,20), z = zero, col = "black", add = T)

然后我可以正确看到它。

enter image description here

实际上试图单独绘制平面会产生空图。

zero = jitter(matrix(0, 20, 20))

enter image description here

编辑

部分解决方案是使用

persp3D(x=seq(1,20), y=seq(1,20), z = zero, col = "black")

这将导致与预期平面无法区分的平面。

enter image description here

1 个答案:

答案 0 :(得分:0)

每当diamonds %>% group_by(cut) %>% summarize(perc = n()/53940*100) %>% plot_ly(x = ~cut, y = ~perc) 呈现一个常数矩阵时,某些事情就会失败。通常这是因为该软件正在尝试计算Z范围的比例并除以零。我只是希望自己绘制一个恒定的平面时会看到这种情况,而添加一个平面时不会。

例如,persp3D将错误:

base::persp

如果您想要一个完全可复制的示例,请按以下方式创建一个> persp(zero) Error in persp.default(zero) : invalid 'z' limits

Delta_B

然后:

> Delta_B = matrix(apply(expand.grid(1:20,1:20),1,function(r){sum(r)-20}),20,20)

不显示> persp3D(x=seq(1,20), y=seq(1,20), z = Delta_B, theta = 20, xlab = "D", ylab = "IR", zlab = "B increment") > zero = matrix(0, 20, 20) > persp3D(x=seq(1,20), y=seq(1,20), z = zero, col = "black", add = TRUE) 平面。但是使zero矩阵非恒定的任何事物都可以解决:

zero

这足以向维护人员提交错误报告。 > zero[1,1]=0.000001 > persp3D(x=seq(1,20), y=seq(1,20), z = zero, col = "black", add = TRUE) 的代码很长,我现在不深入。