Автоматическое обновление графика после изменения данных

Когда вы строите график данных из переменных рабочей области, графики содержат копии переменных. В результате при изменении переменной рабочей области (такой как добавление или удаление данных) графики не обновляются автоматически. Если вы хотите, чтобы график отражал изменение, необходимо скопировать его. Однако можно использовать один из этих методов, чтобы связать графики с переменными рабочей области, которые они представляют. Когда вы связываете графики и переменные рабочей области, изменение данных в одном месте также изменяет его в другом.

  • Используйте связывание данных, чтобы связать график с переменными рабочей области.

  • Установите свойства источника данных нанесенного на график объекта (такого как XDataSource свойство) на имена переменных рабочей области. Затем вызовите refreshdata функция для косвенного обновления свойств данных. Можно использовать этот метод для создания анимаций.

Обновление графика с помощью связывания данных

Связывание данных сохраняет графики, постоянно синхронизируемые с переменными рабочей области, которые они изображают.

Для примера итерационно аппроксимируйте pi. Создайте переменную x для представления числа и y итерации для представления приближения. Постройте график начальных значений x и y. Включите связывание данных с помощью linkdata on чтобы график обновлялся при изменении переменных. Затем обновляйте x и y в цикле for. График обновляется на полсекунды интервалов.

x = [1 2];
y = [4 4];
plot(x,y);
xlim([0 100])
ylim([2.5 4])
xlabel('Iteration')
ylabel('Approximation for \pi')

linkdata on

denom = 1;
k = -1;
for t = 3:100
    denom = denom + 2;
    x(t) = t;
    y(t) = 4*(y(t-1)/4 + k/denom);
    k = -k;
end

Line plot after animation

Обновление графика с использованием свойств Data Source

Вместо использования функции связывания данных можно сохранить график синхронизированным с переменными рабочей области, задав свойства источника данных нанесенного на график объекта. Можно использовать этот метод для создания анимаций.

Для примера итерационно аппроксимируйте pi. Создайте переменную x2 для представления числа и y2 итерации для представления приближения. Постройте график начальных значений x2 и y2. Связать график с переменными рабочей области путем установки свойств источника данных нанесенного на график объекта на 'x2' и 'y2'. Затем обновляйте x2 и y2 в цикле for. Звонить refreshdata и drawnow каждую итерацию для обновления графика на основе обновленных данных.

x2 = [1 2];
y2 = [4 4];
p = plot(x2,y2);
xlim([0 100])
ylim([2.5 4])
xlabel('Iteration')
ylabel('Approximation for \pi')

p.XDataSource = 'x2';
p.YDataSource = 'y2';

denom = 1;
k = -1;
for t = 3:100
    denom = denom + 2;
    x2(t) = t;
    y2(t) = 4*(y2(t-1)/4 + k/denom);
    refreshdata
    drawnow
    k = -k;
end

Line plot after animation

См. также

| | |

Похожие темы