График Максима в цикле, необходимо закрыть один график, чтобы увидеть следующий.

График Максима в цикле должен закрыть один график, чтобы увидеть следующий. Я работаю в среде Windows, но в Linux функция будет отображаться в одном представлении.

Например, эта функция:

for d:0.1 thru 1 step 0.1 do
  draw2d(explicit(x^d,x,0,1));

Я также пробовал это:

set_plot_option(['plot_format, 'gnuplot_pipes]);

Но это не решило. Есть ли вариант, где я могу установить графику в одном представлении?

Спасибо.


person AngularLover    schedule 19.12.2014    source источник


Ответы (1)


Вы можете составить список кривых в цикле и нанести их все на один график. Вы можете использовать цикл или makelist для построения списка кривых.

makelist(x^d, d, 0, 1, 0.1);
plot2d(%, [x, 0, 1]);

введите здесь описание изображения

Если вы используете wxMaxima, вы можете использовать функцию with_slider_draw для анимации графика:

with_slider_draw(
    d, /* the name of the variable to attach to the slider */
    makelist(i,i,0,1,0.1), /* a list of values that the variable can have */
    explicit(x^d, x, 0, 1) /* plot the function */
)$

Если вы предпочитаете аргументы plot2d, используйте with_slider, чтобы сделать то же самое:

with_slider(
   d,
   makelist(i,i,0.1,1,0.1),
   [x^d], [x,0,1]
);

Нажмите на график, а затем используйте кнопку «Воспроизвести» на панели инструментов, чтобы воспроизвести анимацию. Вы можете использовать ползунок на панели инструментов или колесо мыши для перемещения вперед и назад между кадрами анимации. Вы даже можете сохранить анимацию как анимированный gif, щелкнув правой кнопкой мыши сюжет и выбрав «Сохранить анимацию».

введите здесь описание изображения

person Fred Senese    schedule 19.12.2014
comment
но анимации нет.. я хочу анимировать циклом. Я просто хочу, чтобы мне не приходилось закрывать все представления. С уважением. - person AngularLover; 19.12.2014
comment
Хорошо, я не понял, что вы пытались его оживить. Я думаю, что ближе всего к тому, что вы хотите, это multiplot_mode: см. ручную запись для этого. Беда в том, что а) он не будет работать с виндой, только с линуксом и б) он не сотрет предыдущие кадры в анимации, а будет писать поверх них. Вы также можете использовать подход на основе слайдера, а не анимацию... - person Fred Senese; 19.12.2014
comment
да, я искал multi_plot. Это нормально для меня, если он перезаписывает кадры. Но это создаст что-то вроде анимации. Я думаю, это как обходной путь. И with_slider плохо задокументирован. Можете ли вы сделать ползунок для указанной выше функции? - person AngularLover; 20.12.2014
comment
и не могли бы вы также сказать мне, почему он не работает на окнах? - person AngularLover; 20.12.2014
comment
большое спасибо, я пытался добавить nticks, но это не работает... есть ли способ сделать это? - person AngularLover; 22.12.2014
comment
Вы можете добавить любые параметры plot2d в форму with_slider; например with_slider( d, makelist(i,i,0.1,1,0.1), [x^d], [x,0,1], [nticks, 300], [style, points] ); Это работает (вы увидите, что нарисованные точки немного изменятся, когда вы измените метки), но помните, что метки просто задают начальное количество точек, которые использует процедура адаптивного построения графика. Если он считает, что очков недостаточно, он, кажется, решает использовать больше. - person Fred Senese; 22.12.2014