Изменение размера списка изображений в Mathematica для использования с ListAnimate - PullRequest
1 голос
/ 06 июля 2010

Предположим, у нас есть список изображений, например:

imageList = Table[Plot[Sin[k*x], {x, 0, 2 Pi}], {k, 1, 4, .05}];

Мы можем анимировать эти изображения так:

ListAnimate[imageList]

Но теперь предположим, что мы хотим увеличить анимацию. Мы могли бы вставить параметр ImageSize в команду Plot, используемую для генерации изображений, но предположим, что нам не разрешено вмешиваться в imageList.

Мы могли бы вручную изменить размер каждого кадра в списке анимации. Это работает, но как мы можем сделать это менее утомительно?

Ответы [ 3 ]

2 голосов
/ 06 июля 2010

Ключевой параметр - ImageSize. Вы можете использовать его с различными командами печати, а также с Show и Export. ImageSize может быть задано как {<width>,<height>} (где либо может быть Automatic, чтобы иметь другой набор в соответствии с AspectRatio), либо как <width>, что является сокращением от {<width>, Automatic}. Короче говоря, вы можете делать такие вещи, как

gfx = Plot[x^2, {x, 0, 1}, ImageSize -> 200]
Show[gfx, AspectRatio -> 1, ImageSize -> {Automatic, 100}]

Если вы действительно хотите управлять графическим макетом, вам нужно начать играть с ImagePadding и PlotRangePadding, но будьте готовы к седым волосам, если вы пойдете в этом направлении!

Редактировать: В вашем конкретном случае с графикой, уже сгенерированной в imageList, все складывается примерно так

ListAnimate[Show[#, ImageSize->800]& /@ imageList]
1 голос
/ 06 июля 2010

Я немного озадачен вашим вопросом.

    ListAnimate[Table[Plot[x^n, {x, -5, 5}, ImageSize -> {100 n, 75 n}], {n, 1, 5}]]

отлично работает для меня, поскольку рисует изображения с указанными размерами. Это немного беспорядок в этом примере, я вас уверяю. Команда ListAnimate также делает панель с рамкой достаточно большой для самого большого изображения в этом случае.

Публикуйте еще раз, если я ответил на неправильный вопрос для вас, это одна из моих специальностей.

0 голосов
/ 07 июля 2010

Ниже приводится один жизнеспособный ответ на вопрос, сформулированный в настоящее время, благодаря первоначальным ответам High Performance Mark и Janus :

ListAnimate[Show[#, ImageSize->800]& /@ imageList]
...