R库rgl找不到图像magick,虽然它是从cmd shell中安装并执行的。
所以这不起作用:
require(rgl)
open3d()
rgl.bringtotop()
plot3d(foo$x,foo$y,foo$thing,col =heat.colors(256)[1+round(foo$z*255)],xlab = '',ylab='',zlab='',radius=3,size=3,box=T,axes=F)
play3d(spin3d(axis = c(1, 1, 1), rpm = 10), duration = 2)
movie3d(spin3d(axis = c(1, 1, 1), rpm = 10), duration = 1)
因为barfs:
riting 'movie200.png'Writing 'movie003.png'
Error in movie3d(spin3d(axis = c(1, 1, 1), rpm = 10), duration = 20) :
'ImageMagick' not found
In addition: Warning message:
running command 'C:\Windows\system32\cmd.exe /c convert --version' had status 4
这里真正的问题是convert是一个Windows命令。在Windows上,我相信 Imagemagick 使用 magick 作为命令。
所以我认为rgl需要使用windows命令。
有什么想法吗?
解决方法
movie3d(spin3d(axis = c(1, 1, 1), rpm = 10), duration = 12,movie='un1qu3',dir = getwd())
system('magick -delay 10 un1qu3*.png out.gif')
file.remove(grep('un1qu\\d+\\.png',list.files(),value = T))
答案 0 :(得分:0)
这是一个有点老问题,但我刚遇到同样的问题,似乎我设法解决了这个问题。
构建Rgl包是为了使用Imagemagick的convert.exe文件。问题是当前可用于Windows的IM版本不包含此文件,而是使用magick.exe。
为我解决问题实际上非常简单:转到Program Files(或安装它的地方)的Imagemagick库,找到' magick.exe'文件,并将其重命名为' convert.exe'。 :)