绘制给定df的几何矢量图并生成.png

时间:2016-02-01 08:04:29

标签: r animation vector rgl

使用EVENT TYPE=CLICK SELECTOR="#regularPatientName" BUTTON=0 EVENT TYPE=KEYPRESS SELECTOR="#regularPatientName" CHAR="A" EVENT TYPE=CLICK SELECTOR="#oldpatientDiv>UL>LI>A" BUTTON=0 包我能够绘制几何矢量图。 使用以下代码可以绘制给定坐标的三维矢量

matlib

enter image description here

但是,当我想提供library(matlib) library(rgl) vec <- rbind(diag(3), c(1,1,1)) rownames(vec) <- c("X", "Y", "Z", "J") open3d() vectors3d(vec, col=c(rep("black",3), "red"), lwd=2)

的坐标时
df

代码就像给出错误一样;

set.seed(12)
x <- runif(10,-0.14,0.1)
y <- runif(10,-0.14,0.1)
z <-sort(runif(10,-0.9,0.9),decreasing=TRUE)
df <- data.frame(x,y,z)
  

结束时出错 - 启动:二元运算符的非数字参数

所以,问题是我们如何逐一提供vec <- rbind(diag(3), c(df[1,])) vectors3d(vec, col=c(rep("black",3), "red"), lwd=2) df的每一行来创建.png图片?谢谢!

1 个答案:

答案 0 :(得分:1)

我们需要unlistdf[1,]。它仍然是一行data.frame

vec <- rbind(diag(3), unlist(df[1,]))
str(vec)
# num [1:4, 1:3] 1 0 0 -0.123 0 ...
# - attr(*, "dimnames")=List of 2
#  ..$ : NULL
#  ..$ : chr [1:3] "x" "y" "z"

由于OP使用c然后rbind,因此会创建list

vec <- rbind(diag(3), c(df[1,]))
str(vec)
#List of 12
# $ : num 1
# $ : num 0
# $ : num 0
# $ : num -0.123
# $ : num 0
# $ : num 1
# $ : num 0
# $ : num -0.0458
# $ : num 0
# $ : num 0
# $ : num 1
# $ : num 0.518
# - attr(*, "dim")= int [1:2] 4 3
# - attr(*, "dimnames")=List of 2
#  ..$ : NULL
#  ..$ : chr [1:3] "x" "y" "z"

修好后,情节应该有效。