供以后参考:
能够迭代多个视角的关键在于相机控制“眼睛”,plotly帮助中心指向了这一点:
https://plot.ly/r/reference/#layout-scene-camera
camera = list(eye = list(x = 1.25, y = 1.25, z = 1.25)))
这个问题已经在这里得到了回答,但是搜索我的具体查询并没有找到它:
在此处输入链接描述
我在脚本中使用了一个for循环来传递迭代器给三角函数,绘制相机坐标的圆形,并在每一步呈现出一幅新图像。
(x,y) = cos(theta) + sin(theta)
![在此输入图片描述](https://istack.dev59.com/x1NYP.webp)
最终代码如下:
matrix.list <- list(x = temp, y = scan, z = matrix)
font.pref <- list(size=12, family="Arial, sans-serif", color="black")
x.list <- list(title = "X", titlefont = font.pref)
y.list <- list(title = "Y", titlefont = font.pref)
z.list <- list(title = "Z",titlefont = font.pref)
zoom <- 2
for(i in seq(0,6.3,by=0.1){
outfile <- paste(file,"plot",i, sep = "_")
graph <- plot_ly(matrix.list, x = temp, y = scan, z = z,
type="surface") %>%
layout(scene=list(xaxis = x.list,
yaxis = y.list,
zaxis = z.list,
camera = list(eye = list(x = cos(i)*zoom, y = sin(i)*zoom, z= 0.25))))
graph
plotly_IMAGE(graph, username="xxx", key="xxx",
out_file = paste(outfile,"png", sep="."))
}
NB 文件数量和分辨率可能占用相当大的空间。
NB 2 在建立这个过程中,我忘记了plotly的免费API限制你每天最多只能使用50个API调用。因此,如果您想呈现视频,请相应地调整帧等...
caTools
包。我不认为它能与 plotly 一起使用,但你可以用它来制作 GIF。 - Vandenmanrgl
包中的movie3d
和gganimate
包。这两个包都依赖于 imagemagick,所以你可能也需要安装它。 - DeveauPgganimate
,因为它听起来很有希望,由于plotly依赖于ggplot。 - Joe Healey