我正在尝试使用 R 绘制 csv 数据的 3d 曲面图,但我不知道我将如何做到这一点。csv 文件 ( sphere.csv
) 是
0,0,0,0,0,0,0,0,0,0,0
0,0,0,0.447213595,0.565685425,0.6,0.565685425,0.447213595,0,0,0
0,0,0.529150262,0.692820323,0.774596669,0.8,0.774596669,0.692820323,0.529150262,0,0
0,0.447213595,0.692820323,0.824621125,0.894427191,0.916515139,0.894427191,0.824621125,0.692820323,0.447213595,0
0,0.565685425,0.774596669,0.894427191,0.959166305,0.979795897,0.959166305,0.894427191,0.774596669,0.565685425,0
0,0.6,0.8,0.916515139,0.979795897,1,0.979795897,0.916515139,0.8,0.6,0
0,0.565685425,0.774596669,0.894427191,0.959166305,0.979795897,0.959166305,0.894427191,0.774596669,0.565685425,0
0,0.447213595,0.692820323,0.824621125,0.894427191,0.916515139,0.894427191,0.824621125,0.692820323,0.447213595,0
0,0,0.529150262,0.692820323,0.774596669,0.8,0.774596669,0.692820323,0.529150262,0,0
0,0,0,0.447213595,0.565685425,0.6,0.565685425,0.447213595,0,0,0
0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0
我能够像这样阅读它
sphere_data <- read.csv (file="sphere.csv", head=FALSE, sep=",")
然后我尝试使用wireframe
:
library(lattice)
wireframe(z~x+y,sphere_data)
但这给了我一个错误。特别是,口译员似乎对z
表达的内容感到窒息z~x+y
。我不知道那个表达是什么意思,但我在互联网上的其他例子中找到了它。
编辑
根据shujaa的建议,dput(sphere_data)
返回
structure(list(V1 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L), V2 = c(0, 0, 0, 0.447213595, 0.565685425, 0.6, 0.565685425,
0.447213595, 0, 0, 0, 0), V3 = c(0, 0, 0.529150262, 0.692820323,
0.774596669, 0.8, 0.774596669, 0.692820323, 0.529150262, 0, 0,
0), V4 = c(0, 0.447213595, 0.692820323, 0.824621125, 0.894427191,
0.916515139, 0.894427191, 0.824621125, 0.692820323, 0.447213595,
0, 0), V5 = c(0, 0.565685425, 0.774596669, 0.894427191, 0.959166305,
0.979795897, 0.959166305, 0.894427191, 0.774596669, 0.565685425,
0, 0), V6 = c(0, 0.6, 0.8, 0.916515139, 0.979795897, 1, 0.979795897,
0.916515139, 0.8, 0.6, 0, 0), V7 = c(0, 0.565685425, 0.774596669,
0.894427191, 0.959166305, 0.979795897, 0.959166305, 0.894427191,
0.774596669, 0.565685425, 0, 0), V8 = c(0, 0.447213595, 0.692820323,
0.824621125, 0.894427191, 0.916515139, 0.894427191, 0.824621125,
0.692820323, 0.447213595, 0, 0), V9 = c(0, 0, 0.529150262, 0.692820323,
0.774596669, 0.8, 0.774596669, 0.692820323, 0.529150262, 0, 0,
0), V10 = c(0, 0, 0, 0.447213595, 0.565685425, 0.6, 0.565685425,
0.447213595, 0, 0, 0, 0), V11 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L)), .Names = c("V1", "V2", "V3", "V4", "V5",
"V6", "V7", "V8", "V9", "V10", "V11"), class = "data.frame", row.names = c(NA,
-12L))
csv 中的数据有 11x11 个值。这些值应该表示一个点的高度(比如 z 轴)。csv 中第一行的所有值都在同一个 x 轴上,第二行的值也是如此,直到最后一行的值。每行的第一个值在相同的 y 轴上,对于每行的第二个值也是如此,直到最后一行的值。