2016-06-13 5 views
1

Пытается использовать удивительный пакет gganimate в R, но возникла проблема с запуском моей анимации. Вернулся к попытке запустить базовый пример, но не смог его связать с ImageMagick.Ссылка R на ImageMagick

Вход:

library(gapminder)  
b = ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, color = continent, frame = year))+ geom_point() +scale_x_log10() 
gg_animate(b) 

И выход:

I cannot find ImageMagick with convert = "convert" 
Error in file(file, "rb") : cannot open the connection 
In addition: Warning messages: 
1: running command 'C:\windows\system32\cmd.exe /c convert --version' had status 4 
2: In find_magic() : ImageMagick not installed yet! 
3: In im.convert(img.files, output = movie.name, convert = convert, : 
Please install ImageMagick first or put its bin path into the system PATH variable 
4: In normalizePath(path.expand(path), winslash, mustWork) : 
path[1]="filed42411bd2b88.gif": The system cannot find the file specified 

Из исследования я сделал, кажется, что этот вопрос имеет что-то делать с объявляя convert.exe и путь окна, я «Просто не уверен, что исправить, чтобы заставить этот код работать.

Я установил ImageMagick-7.0.2-Q16 для Windows (я запускаю Windows 7).

Что мне не хватает?

ответ

0

Не требуется Объявлениеconvert.exe; Windows имеет собственный инструмент cli с тем же именем, что и convert a FAT partition into an NTFS partition, а не то, что вы хотите.

(NB:. Я забыл, какой каталог IM устанавливает себя в окнах, поэтому, пожалуйста, проверьте путь я обеспечиваю, прежде чем слепо, используя этот код)

Если это одноразовая вещь, вы можете сделать его доступным что-то вроде:

Sys.setenv(PATH = paste("c:/Program Files/ImageMagick/bin", 
         Sys.getenv("PATH"), sep = ";")) 

Если вы хотите более постоянного решения, у вас есть два варианта:

  1. Сохранить выше код в файле .Rprofile, либо в вашем домашнем каталоге (влияет на все ваши будущие сеансы R), либо в каталоге вашего проекта R, нуждающегося в этом инструменте. (Вам нужно также запустить этот код на консоли или перезапустить сеанс R, чтобы изменения были замечены в вашем коде.)

  2. Добавьте его к оконному пути. Есть много мест, где можно найти помощь, включая https://stackoverflow.com/a/28545224/3358272.

Edit: он came to my attention что не устанавливать окна больше не предоставляет приложения удобства (например, convert.exe, mogrify.exe), что unixy установки делает. (Я использую IM для окон, установленных через msys2, поэтому, я думаю, он предпочитает unixy-метод ... Я должен был знать.) Таким образом, это предполагает третий вариант:

  1. Так как gapminder использует gganimate, который вызывает animation::im.convert, its source говорит, что вы можете указать исполняемую команду через что-то вроде ani.options(convert = shQuote('c:/program files/imagemagick/magick.exe')).
+0

@ Randerson, см. Мое редактирование, я думаю, что это может быть лучшим ответом на вашу проблему. – r2evans

+0

Вариант 3 был тем, что он сделал. Спасибо @ r2evans за вашу помощь! – Randerson

Смежные вопросы