尝试绘制曲面时 for 循环出错
Error in for loop while trying to plot a surface
我正在尝试在 R 中绘制一个 3d 曲面,但当我的 X 和 Y 的值均为正时,for 循环中似乎有问题。
这是一个非常简单的函数和 for 循环,但我还没有发现任何错误,最终的表面仍然与预期的不同(在本例中为正常平面)。想知道我可能遗漏了什么吗?
library(ggplot2)
library(plotly)
x = seq(-5,5)
y = seq(-5,5)
fxy = matrix(0,length(y),length(x))
dim(fxy)
result = function(x,y){
x+y
}
for (j in y) {
for (i in x) {
fxy[i,j] = result(x[i],y[j])
}
}
fig = plot_ly(z = ~fxy, x = x, y=y)
fig = fig %>% add_surface()
fig
感谢您的帮助!
你的循环应该使用 seq_along(x)
和 seq_along(y)
而不是 x
和 y
:
library(ggplot2)
library(plotly)
x = seq(-5,5)
y = seq(-5,5)
fxy = matrix(0,length(y),length(x))
dim(fxy)
result = function(x,y){
x+y
}
for (j in seq_along(y)) {
for (i in seq_along(x)) {
fxy[i,j] = result(x[i],y[j])
}
}
fig = plot_ly(z = ~fxy, x = x, y=y)
fig = fig %>% add_surface()
fig
我正在尝试在 R 中绘制一个 3d 曲面,但当我的 X 和 Y 的值均为正时,for 循环中似乎有问题。
这是一个非常简单的函数和 for 循环,但我还没有发现任何错误,最终的表面仍然与预期的不同(在本例中为正常平面)。想知道我可能遗漏了什么吗?
library(ggplot2)
library(plotly)
x = seq(-5,5)
y = seq(-5,5)
fxy = matrix(0,length(y),length(x))
dim(fxy)
result = function(x,y){
x+y
}
for (j in y) {
for (i in x) {
fxy[i,j] = result(x[i],y[j])
}
}
fig = plot_ly(z = ~fxy, x = x, y=y)
fig = fig %>% add_surface()
fig
感谢您的帮助!
你的循环应该使用 seq_along(x)
和 seq_along(y)
而不是 x
和 y
:
library(ggplot2)
library(plotly)
x = seq(-5,5)
y = seq(-5,5)
fxy = matrix(0,length(y),length(x))
dim(fxy)
result = function(x,y){
x+y
}
for (j in seq_along(y)) {
for (i in seq_along(x)) {
fxy[i,j] = result(x[i],y[j])
}
}
fig = plot_ly(z = ~fxy, x = x, y=y)
fig = fig %>% add_surface()
fig