animatedline

Создайте анимированную строку

Синтаксис

an = animatedline
an = animatedline(x,y)
an = animatedline(x,y,z)
an = animatedline(___,Name,Value)
an = animatedline(ax,___)

Описание

an = animatedline создает анимированную строку, которая не имеет никаких данных и добавляет его в текущую систему координат. Создайте анимацию путем добавления точек в строку в цикле с помощью функции addpoints.

пример

an = animatedline(x,y) создает анимированную строку с точками исходных данных, заданными x и y.

an = animatedline(x,y,z) создает анимированную строку с точками исходных данных, заданными x, y и z.

пример

an = animatedline(___,Name,Value) задает анимированные свойства строки с помощью одного или нескольких аргументов пары "имя-значение". Например, 'Color','r' устанавливает цвет линии на красный. Используйте эту опцию после любой из комбинаций входных аргументов в предыдущих синтаксисах.

an = animatedline(ax,___) создает строку в осях, заданных ax вместо в текущей системе координат (gca). Опция ax может предшествовать любой комбинации входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Создайте анимированный объект линии начальной буквы. Затем используйте цикл, чтобы добавить 1 000 точек в строку. После добавления каждой новой точки используйте drawnow, чтобы отобразить новую точку на экране.

h = animatedline;
axis([0,4*pi,-1,1])

x = linspace(0,4*pi,1000);
y = sin(x);
for k = 1:length(x)
    addpoints(h,x(k),y(k));
    drawnow
end

Для более быстрого рендеринга добавьте больше чем одну точку в строку каждый раз через цикл или используйте drawnow limitrate.

Запросите точки строки.

[xdata,ydata] = getpoints(h);

Очистите точки от строки.

clearpoints(h)
drawnow

Выберите цвет анимированной строки к красному и установите ее ширину линии на 3 точки.

x = [1 2];
y = [1 2];
h = animatedline(x,y,'Color','r','LineWidth',3);

Ограничьте число точек в анимированной строке к 100. Используйте цикл, чтобы добавить одну точку в строку за один раз. Когда строка содержит 100 точек, добавляя новую точку в удаления строки самая старая точка.

h = animatedline('MaximumNumPoints',100);
axis([0,4*pi,-1,1])

x = linspace(0,4*pi,1000);
y = sin(x);
for k = 1:length(x)
    addpoints(h,x(k),y(k));
    drawnow
end

Используйте цикл, чтобы добавить 100 000 точек в анимированную строку. Поскольку число точек является большим, добавляя одну точку в строку, каждый раз через цикл может быть медленным. Вместо этого добавьте 100 точек в строку каждый раз через цикл для более быстрой анимации.

h = animatedline;
axis([0,4*pi,-1,1])

numpoints = 100000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
for k = 1:100:numpoints-99
    xvec = x(k:k+99);
    yvec = y(k:k+99);
    addpoints(h,xvec,yvec)
    drawnow
end

Другой метод для создания более быстрых анимаций должен использовать drawnow limitrate вместо drawnow.

Используйте цикл, чтобы добавить 100 000 точек в анимированную строку. Поскольку число точек является большим, использование drawnow, чтобы отобразить изменения может быть медленным. Вместо этого используйте drawnow limitrate для более быстрой анимации.

h = animatedline;
axis([0,4*pi,-1,1])

numpoints = 100000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
for k = 1:numpoints
    addpoints(h,x(k),y(k))
    drawnow limitrate
end

Управляйте скоростью анимации путем пробежки нескольких итераций цикла анимации прежде, чем чертить обновления на экране. Используйте этот метод, когда drawnow является слишком медленным, и drawnow limitrate слишком быстр.

Например, обновите экран каждый 1/30 секунды. Используйте tic и команды toc, чтобы отслеживать то, сколько время передает между экранными обновлениями.

h = animatedline;
axis([0,4*pi,-1,1])
numpoints = 10000;
x = linspace(0,4*pi,numpoints);
y = sin(x);
a = tic; % start timer
for k = 1:numpoints
    addpoints(h,x(k),y(k))
    b = toc(a); % check timer
    if b > (1/30)
        drawnow % update screen every 1/30 seconds
        a = tic; % reset timer after updating
    end
end
drawnow % draw final frame

Меньший интервал обновляет экран чаще и приводит к более медленной анимации. Например, используйте b > (1/1000), чтобы замедлить анимацию.

Входные параметры

свернуть все

Начальная буква x значения для анимированной строки, заданной как скаляр или вектор. Вход x должен быть равен в размере y.

Пример: 1:10

Типы данных: double

Начальная буква y значения для анимированной строки, заданной как скаляр или вектор. Вход y должен быть равен в размере x.

Пример: 1:10

Типы данных: double

Начальная буква z значения для анимированной строки, заданной как скаляр или вектор. Вход z должен быть равен в размере x и y.

Пример: 1:10

Типы данных: double

Объект осей. Если вы не задаете объект осей, то animatedline использует текущую систему координат.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'Color','red','Marker','o'

Анимированные свойства строки, перечисленные здесь, являются только подмножеством. Для полного списка см. Свойства AnimatedLine.

Цвет линии, заданный как триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое название. Значение по умолчанию [0 0 0] соответствует черный.

Для пользовательского цвета задайте триплет RGB или шестнадцатеричный цветовой код.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7].

  • Шестнадцатеричный цветовой код является вектором символов или скаляром строки, который запускается с символа хеша (#), сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут колебаться от 0 до F. Значения не являются чувствительными к регистру. Таким образом цветовые коды '#FF8800', '#ff8800', '#F80' и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB® во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Стиль линии, заданный как одна из опций, перечислен в этой таблице.

Стиль линииОписаниеПолучившаяся строка
'-'Сплошная линия

'--'Пунктирная линия

':'Пунктирная линия

'-.'Штрих-пунктирная линия

'none'Никакая строкаНикакая строка

Ширина линии, заданная как положительное значение в точках, где 1 точка = 1/72 дюйма. Если у линии есть маркеры, ширина линии также влияет на края маркера.

Символ маркера, заданный как один из символов маркера, перечислен в этой таблице. По умолчанию анимированный объект линии не имеет маркеров. Определение символа маркера добавляет маркеры в каждой точке данных или вершине.

ЗначениеОписание
'o'Круг
'+'Знак «плюс»
'*'Звездочка
'.'Точка
'x'Крест
square' или 's'Квадрат
'diamond' или 'd'Ромб
'^'Треугольник, направленный вверх
'v'Нисходящий треугольник
'>'Треугольник, указывающий вправо
'<'Треугольник, указывающий влево
pentagram' или 'p'Пятиконечная звезда (пентаграмма)
'hexagram' or 'h'Шестиконечная звезда (гексаграмма)
'none'Никакие маркеры

Размер маркера, заданный как положительное значение в точках, где 1 точка = 1/72 дюйма.

Цвет контура маркера, заданный как 'auto', триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое название. Значение по умолчанию 'auto' использует тот же цвет в качестве свойства Color.

Для пользовательского цвета задайте триплет RGB или шестнадцатеричный цветовой код.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7].

  • Шестнадцатеричный цветовой код является вектором символов или скаляром строки, который запускается с символа хеша (#), сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут колебаться от 0 до F. Значения не являются чувствительными к регистру. Таким образом цветовые коды '#FF8800', '#ff8800', '#F80' и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Цвет заливки маркера, заданный как 'auto', триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое название. Опция 'auto' использует тот же цвет в качестве свойства Color родительских осей. Если вы задаете 'auto', и поле графика осей невидимо, цвет заливки маркера является цветом фигуры.

Для пользовательского цвета задайте триплет RGB или шестнадцатеричный цветовой код.

  • Триплет RGB представляет собой трехэлементный вектор-строку, элементы которого определяют интенсивность красных, зеленых и синих компонентов цвета. Интенсивность должны быть в диапазоне [0,1]; например, [0,4 0,6 0,7].

  • Шестнадцатеричный цветовой код является вектором символов или скаляром строки, который запускается с символа хеша (#), сопровождаемый тремя или шестью шестнадцатеричными цифрами, которые могут колебаться от 0 до F. Значения не являются чувствительными к регистру. Таким образом цветовые коды '#FF8800', '#ff8800', '#F80' и '#f80' эквивалентны.

Кроме того, вы можете задать имена некоторых простых цветов. Эта таблица приводит опции именованного цвета, эквивалентные триплеты RGB и шестнадцатеричные цветовые коды.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

'none'Не применяетсяНе применяетсяНе применяетсяНет цвета

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

Максимальное количество точек сохранено и отображенное как часть строки, заданной как положительное значение или Inf. По умолчанию значение является одним миллионом точек. Если число точек превышает разрешенное максимальное значение, то анимированная строка сохраняет последний раз добавленные точки и упала на пункты с начала строки. Эти пункты, на которые упали, больше не отображаются на экране и не возвращены при использовании getpoints.

Используйте это свойство ограничить число точек, появляющееся на экране в любой момент времени или ограничить используемый объем памяти. Если вы задаете значение как Inf, то анимированная строка не упала ни на какие пункты, но сохраненное число точек ограничивается доступным объемом памяти.

Пример: 10

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Выходные аргументы

свернуть все

Объект AnimatedLine. Используйте an, чтобы изменить объект AnimatedLine после ее созданного, такой как изменение значений свойств или добавление точек к строке. Для списка свойств см. Свойства AnimatedLine.

Советы

  • Анимированные строки не поддерживают всплывающие подсказки.

Расширенные возможности

Смотрите также

Функции

Свойства

Введенный в R2014b