Создание анимированной линии
создает анимированную линию, которая не имеет данных, и добавляет ее к текущей системе координат. Создать анимацию путем добавления точек к линии в цикле с помощью an
= animatedlineaddpoints
функция.
задает свойства анимированной линии, используя один или несколько аргументы пары "имя-значение". Для примера, an
= animatedline(___,Name,Value
)'Color','r'
устанавливает красный цвет линии. Используйте эту опцию после любой комбинации входных аргументов в предыдущих синтаксисах.
Создайте начальный анимированный объект линии. Затем используйте цикл, чтобы добавить 1000 точек к линии. После добавления каждой новой точки используйте 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, theta или широта)[]
(по умолчанию) | скаляром или векторомНачальный x -cordinate, theta -cordinate, или значение широты, заданное в виде скаляра или вектора того же размера, что и y
. Тип координаты зависит от типа осей, в которые вы строите график:
Декартовы оси - значение является начальной x -координата.
Полярные оси - значение является начальной theta -согласования.
Географические оси - значение является начальной широтой в степенях.
Типы данных: double
y
- Начальная координата (y, rho, или долгота)[]
(по умолчанию) | скаляром или векторомНачальный y -cordinate, rho -cordinate, или значение долготы, заданное в виде скаляра или вектора того же размера, что и x
. Тип координаты зависит от типа осей, в которые вы строите график:
Декартовы оси - значение является начальной y -координата.
Полярные оси - значение является начальной rho -согласования.
Географические оси - значение является начальной долготой в степенях.
Типы данных: double
z
- Стартовая z-координата (Декартовы оси)[]
(по умолчанию) | скаляром или векторомСтартовая z-координата для Декартовых осей, заданная в виде скаляра или вектора.
Типы данных: double
ax
- Целевые осиAxes
| объекта PolarAxes
| объекта GeographicAxes
| объекта Group
| объекта Transform
объектЦелевые оси, заданные как Axes
, PolarAxes
, GeographicAxes
, Group
, или Transform
объект. Если вы не задаете объект осей, то animatedline
использует текущую систему координат.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'Color','red','Marker','o'
Перечисленные здесь свойства анимированной линии являются только подмножеством. Полный список см. в разделе Свойства AnimatedLine.
'Color'
- Цвет линии[0 0 0]
(по умолчанию) | триплет RGB | шестнадцатеричный цветовой код | 'r'
| 'g'
| 'b'
| ...Цвет линии, заданный как триплет 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' |
'LineStyle'
- Стиль линии'-'
(по умолчанию) | '--'
| ':'
| '-.'
| 'none'
Стиль линии, заданный как одно из опций, перечисленных в этой таблице.
Стиль линии | Описание | Результирующая линия |
---|---|---|
'-' | Сплошная линия |
|
'--' | Штриховая линия |
|
':' | Пунктирная линия |
|
'-.' | Штрих-пунктирная линия |
|
'none' | Нет линии | Нет линии |
'LineWidth'
- Ширина линии0.5
(по умолчанию) | положительное значениеШирина линии, заданная как положительное значение в точках, где 1 точка = 1/72 дюйма. Если у линии есть маркеры, ширина линии также влияет на ребра маркера.
Ширина линии не может быть более тонкой, чем ширина пикселя. Если вы задаете ширину линии значение, которое меньше, чем ширина пикселя в вашей системе, линия отображается как один пиксель в ширину.
'Marker'
- Символ маркера'none'
(по умолчанию) | 'o'
| '+'
| '*'
| '.'
| ...Символ маркера, заданный как одно из значений, перечисленных в этой таблице. По умолчанию объект не отображает маркеры. Установка символа маркера добавляет маркеры в каждую точку данных или вершину.
Значение | Описание |
---|---|
'o' | Круг |
'+' | Плюс знак |
'*' | Звездочка |
'.' | Точка |
'x' | Крест |
'_' | Горизонтальная линия |
'|' | Вертикальная линия |
'square' или 's' | Квадрат |
'diamond' или 'd' | Алмаз |
'^' | Направленный вверх треугольник |
'v' | Нисходящий треугольник |
'>' | Треугольник , указывающий вправо |
'<' | Треугольник , указывающий влево |
'pentagram' или 'p' | Пятиконечная звезда (пентаграмма) |
'hexagram' или 'h' | Шестиконечная звезда (гексаграмма ) |
'none' | Маркеров нет |
'MarkerSize'
- Размер маркера6
(по умолчанию) | положительное значениеРазмер маркера, заданный как положительное значение в точках, где 1 точка = 1/72 дюйма.
'MarkerEdgeColor'
- Цвет контура маркера'auto'
(по умолчанию) | триплет RGB | шестнадцатеричный цветовой код | 'r'
| 'g'
| 'b'
Цвет контура маркера, заданный как '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' |
'MarkerFaceColor'
- Цвет заливки маркера'none'
(по умолчанию) | 'auto'
| триплет RGB | шестнадцатеричный цветовой код | 'r'
| 'g'
| 'b'
Цвет заливки маркера, заданный как 'auto'
, триплет RGB, шестнадцатеричный цветовой код, название цвета или краткое имя. The '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' |
'MaximumNumPoints'
- Максимальное число точек, сохраненных и отображаемых 1000000
(по умолчанию) | положительное значение | Inf
Максимальное число точек, сохраненных и отображаемых как часть линии, заданное в виде положительного значения или Inf
. По умолчанию значение составляет миллион точек. Если число точек превышает максимальное разрешенное значение, то анимированная линия сохраняет последние добавленные точки и отбрасывает точки из начала линии. Эти сброшенные точки больше не отображаются на экране и не возвращаются при использовании getpoints
.
Используйте это свойство для ограничения числа точек, появляющихся на экране в любое заданное время, или для ограничения используемого объема памяти. Если вы задаете значение следующим Inf
, тогда анимированная линия не отбрасывает никаких точек, но сохранённое число точек ограничено объемом доступной памяти.
Пример: 10
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
an
— AnimatedLine
объектAnimatedLine
объектAnimatedLine
объект. Использование an
для изменения AnimatedLine
объект после его создания, например, изменение значений свойств или добавление точек к линии. Список свойств см. в разделе Свойств ALine.
Анимированные линии не поддерживают всплывающих подсказок.
Указания и ограничения по применению:
Эта функция принимает массивы GPU, но не запускается на графическом процессоре.
Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
Указания и ограничения по применению:
Эта функция работает с распределенными массивами, но выполняется в клиентском MATLAB.
Для получения дополнительной информации смотрите Запуск функций MATLAB с распределенными массивами (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.