我正在尝试将z = 0平面添加到3D图中。我使用的代码是
const locale = navigator.language
|| 'en-US';
React.useEffect(() => {
addLocaleData(require( `intl/locale-data/jsonp/${locale}` ));
}, []);
如果我用
晃动飞机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)
然后我可以正确看到它。
实际上试图单独绘制平面会产生空图。
zero = jitter(matrix(0, 20, 20))
编辑
部分解决方案是使用
persp3D(x=seq(1,20), y=seq(1,20), z = zero, col = "black")
这将导致与预期平面无法区分的平面。
答案 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)
的代码很长,我现在不深入。