animatedline

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

Описание

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

пример

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

an = animatedline(x,y,z) создает анимированную линию с точками исходных данных, заданными xY, и 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.

Пример: 1:10

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

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

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

Задайте дополнительные разделенные запятой пары Name,Value аргументы. 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' или '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