animatedline
创建动画线条
语法
说明
创建一根没有任何数据的动画线条并将其添加到当前坐标区中。通过使用 an
= animatedlineaddpoints
函数循环向线条中添加点来创建动画。
使用一个或多个名称-值对组参数指定动画线条属性。例如,an
= animatedline(___,Name,Value
)'Color','r'
将线条颜色设置为红色。在上述语法中的任何输入参数组合后使用此选项。
示例
显示线条动画
创建初始动画线条对象。然后,通过循环向线条中添加 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
。
使用 drawnow limitrate 创建快速动画
通过循环向动画线条中添加 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 坐标
[]
(默认) | 标量或向量
起始 x 坐标,指定为与 y
大小相同的标量或向量。
在极坐标中,x
对应于起始 theta 值。在地理坐标中,x
对应于以度为单位的起始纬度。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| datetime
| duration
y
— 起始 y 坐标
[]
(默认) | 标量或向量
起始 y 坐标,指定为与 x
大小相同的标量或向量。
在极坐标中,y
对应于起始半径值。在地理坐标中,y
对应于以度为单位的起始经度。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| datetime
| duration
z
— 起始 z 坐标
[]
(默认) | 标量或向量
起始 z 坐标,指定为标量或向量。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| datetime
| duration
ax
— 目标坐标区
任何类型的坐标区 | Group
对象 | Transform
对象
目标坐标区,指定为任何类型的坐标区、Group
对象或 Transform
对象。如果不指定此参数,则 animatedline
会使用当前坐标区。
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
示例: animatedline(x,y,Color="red",Marker="o")
创建一个具有红色圆形标记的动画线条。
在 R2021a 之前: 使用逗号分隔每个名称和值,并用引号将 Name
引起来。例如,animatedline(x,y,"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" | 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 MATLAB® 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
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" | 方形 |
|
"diamond" | 菱形 |
|
"^" | 上三角 |
|
"v" | 下三角 |
|
">" | 右三角 |
|
"<" | 左三角 |
|
"pentagram" | 五角形 |
|
"hexagram" | 六角形 |
|
"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" | 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
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 三元组、十六进制颜色代码、颜色名称或短名称。"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" | 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
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
对象。可在创建 AnimatedLine
对象后使用 an
修改对象,例如更改属性值或向线条上添加点。有关属性列表,请参阅 AnimatedLine 属性。
局限性
动画线条不支持数据提示。
扩展功能
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
用法说明和限制:
此函数接受 GPU 数组,但不在 GPU 上运行。
有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
用法说明和限制:
此函数在分布式数组上运行,但在客户端 MATLAB 中执行。
有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
版本历史记录
在 R2014b 中推出R2023a: 指定单精度、双精度、整数、日期时间或持续时间坐标
使用 x、y 和 z 坐标的单精度、双精度、整数、日期时间或持续时间数据创建动画线条。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)