我想知道是否有人知道将绘图3D图表导出为视频的方法(更具体地讲,这可以本地完成还是需要合并)?

导出静态图像很简单,而导出交互式图则可以嵌入HTML等中。

可以说我有一个3D图表,我想这样简单地缓慢旋转,如果图像可以旋转给定的间隔,拍摄的图像,无限循环地旋转,这似乎是非常简单的-但我我想知道这是否不受 native 支持吗?

有人知道一个好的策略吗?

R/RStudio的理想解决方案,但由于它是跨平台的,因此考虑使用任何解决方案。

最佳答案

备查:
能够迭代多个视角的关键在于相机控件“眼睛”,可圈可点的帮助中心将我引向了这一点:
https://plot.ly/r/reference/#layout-scene-camera

camera = list(eye = list(x = 1.25, y = 1.25, z = 1.25))) #1.25 is default
尽管在上面搜索我的特定查询没有找到它,但这在这里得到了回答:
enter link description here
我在脚本中使用了for循环将迭代器传递给三角函数,该函数为摄像机坐标绘制了一个圆,并在每个步骤中渲染了一个新图像。
(x,y)= cos(θ)+ sin(θ)
r - 从3D图表创建视频-LMLPHP
最终的代码如下所示:
# assume dataset read in, manipulated and given as a matrix in "matrix"
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){
# 6.3 is enough for a full 360 rotation

 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))))

# The above camera parameters should orbit
# horizontally around the chart.
# The multiplier controls how far out from
# from the graph centre the camera is (so
# is functionally a 'zoom' control).

  graph
  plotly_IMAGE(graph, username="xxx", key="xxx",
               out_file = paste(outfile,"png", sep="."))
}
注意:文件数量和文件分辨率最终可能占用相当大的空间。
NB 2 我在构建此组件时忘记了,该组件可自由使用API​​限制您每天进行50个API调用,因此,如果要渲染视频,调整帧等,则...

关于r - 从3D图表创建视频,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39228237/

10-12 21:57