stem
绘制离散序列数据

语法
说明
向量和矩阵数据
stem(
将数据序列 Y
)Y
绘制为从沿 x 轴的基线延伸的针状图。各个数据值由终止每个针状图的圆指示。
如果
Y
是向量,x 轴的刻度范围是从 1 至length(Y)
。如果
Y
是矩阵,则stem
将根据相同的 x 值绘制行中的所有元素,并且 x 轴的刻度范围是从 1 至Y
中的行数。
stem(___,
填充圆。可将此选项与上述语法中的任何输入参数组合一起使用。"filled"
)
表数据
示例
绘制单数据序列
创建一个包含 和 之间的 50 个数据值的针状图。
figure Y = linspace(-2*pi,2*pi,50); stem(Y)
数据值绘制为从基线开始延伸并在数据值位置终止的针状线条。Y
的长度自动确定每个针状图在 x 轴上的位置。
绘制多个数据序列
使用两列矩阵绘制两个数据序列。
figure X = linspace(0,2*pi,50)'; Y = [cos(X), 0.5*sin(X)]; stem(Y)
Y
的每列绘制为一个单独的序列,且 Y
的同一行的各项会针对同一 x 值进行绘制。Y
中的行数自动生成每个针状线条在 x 轴上的位置。
在指定的 x 值位置绘制单个数据序列
绘制在 0 和 之间计算的 50 个余弦数据值并为针状图指定 x 值集。
figure X = linspace(0,2*pi,50)'; Y = cos(X); stem(X,Y)
第一个向量输入确定每个针状线条在 x 轴上的位置。
在指定的 x 值处绘制多个数据序列
绘制在 0 和 之间计算的 50 个正弦和余弦数据值并为针状图指定 x 值集。
figure X = linspace(0,2*pi,50)'; Y = [cos(X), 0.5*sin(X)]; stem(X,Y)
向量输入确定这两个数据序列的 x 轴位置。
在唯一的 x 值集合处绘制多个数据序列
绘制根据不同的 x 值集计算的 50 个正弦和余弦数据值。为每个序列指定对应的 x 值集。
figure x1 = linspace(0,2*pi,50)'; x2 = linspace(pi,3*pi,50)'; X = [x1, x2]; Y = [cos(x1), 0.5*sin(x2)]; stem(X,Y)
绘制 X
的每一列对 Y
的对应列的图。
填充图标记
指定针状线条和标记选项
创建一个针状图并使用 LineSpec
选项将线型设置为点线,将标记符号设置为菱形,将颜色设置为红色。
figure
X = linspace(0,2*pi,50)';
Y = (exp(X).*sin(X));
stem(X,Y,':diamondr')
要对菱形内部着色,请使用 'fill'
选项。
指定其他针状线条和标记选项
创建一个针状图,并使用 Name,Value
对组参数将线型设置为点划线,将标记面颜色设置为红色,以及将标记边颜色设置为绿色。
figure X = linspace(0,2*pi,25)'; Y = (cos(2*X)); stem(X,Y,'LineStyle','-.',... 'MarkerFaceColor','red',... 'MarkerEdgeColor','green')
针状图仍保持默认颜色。
绘制表中的数据
自 R2022b 开始提供
基于表数据绘图的一种便捷方法是将表传递给 stem
函数,并指定要绘制的变量。
读取 weather.csv
的前 100 行和前 7 列数据作为一个时间表 tbl
。然后显示该表的前三行。
tbl = readtimetable("weather.csv","Range",[1 1 101 7]); head(tbl,3)
Time WindDirection WindSpeed Humidity Temperature RainInchesPerMinute CumulativeRainfall ____________________ _____________ _________ ________ ___________ ___________________ __________________ 25-Oct-2021 00:00:09 46 1 84 49.2 0 0 25-Oct-2021 00:01:09 45 1.6 84 49.2 0 0 25-Oct-2021 00:02:09 36 2.2 84 49.2 0 0
在 x 轴上绘制行时间,在 y 轴上绘制 CumulativeRainfall
变量。在绘制来自时间表的数据时,默认情况下,行时间绘制在 x 轴上。因此,您不需要指定 Time
变量。以 h
形式返回 Stem
对象。请注意,轴标签与变量名称匹配。
h = stem(tbl,"CumulativeRainfall");
通过设置 Color
属性,将绘图的颜色更改为紫色。
h.Color = [0.5 0 0.8];
在一个轴上绘制多个表变量
自 R2022b 开始提供
创建向量 x
、y1
和 y2
,并使用它们创建一个表。绘制 y1
和 y2 变量对 x
变量的图,并使用 axis padded
命令以使针状图不与图框重叠。然后添加图例,注意图例标签与表变量名称匹配。
x = (0:0.1:2.9)'; y1 = cos(x); y2 = sin(x); tbl = table(x,y1,y2); stem(tbl,"x",["y1","y2"]); % Pad axes and add a legend axis padded legend
您也可以省略 x
变量,并绘制 y1
和 y2
变量对表的行索引的图。
stem(tbl,["y1","y2"]); axis padded legend
指定针状图的坐标区
自 R2019b 开始提供
您可以使用 tiledlayout
和 nexttile
函数显示分块图。调用 tiledlayout
函数以创建一个 2×1 分块图布局。调用 nexttile
函数以创建坐标区对象 ax1
和 ax2
。通过将坐标区对象指定为 stem
的第一个参数,在坐标区中创建单独的针状图。
x = 0:25; y1 = exp(0.1*x); y2 = -exp(.05*x); tiledlayout(2,1) % Top plot ax1 = nexttile; stem(ax1,x,y1) % Bottom plot ax2 = nexttile; stem(ax2,x,y2)
创建后修改针状序列
创建一个三维针状图并返回针状序列对象。
X = linspace(0,2);
Y = X.^3;
Z = exp(X).*cos(Y);
h = stem3(X,Y,Z,'filled');
将颜色更改为品红色,将标记面颜色设置为黄色。使用 view
可调整图窗中坐标区的角度。使用圆点表示法设置属性。
h.Color = 'm'; h.MarkerFaceColor = 'y'; view(-10,35)
调整基线属性
创建一个针状图并更改基线的属性。
X = linspace(0,2*pi,50); Y = exp(0.3*X).*sin(3*X); h = stem(X,Y);
更改基线的线型。使用圆点表示法设置属性。
hbase = h.BaseLine;
hbase.LineStyle = '--';
将基线的 Visible
属性设置为 'off'
以隐藏基线。
hbase.Visible = 'off';
更改基线级别
创建一个针状图并将基线级别设置为 2。
X = linspace(0,2*pi,50)';
Y = (exp(0.3*X).*sin(3*X));
stem(X,Y,'BaseValue',2);
输入参数
Y
— 要显示的数据序列
向量或矩阵
要显示的数据序列,指定为向量或矩阵。如果 Y
是向量,stem
将创建一个 Stem
对象。如果 Y
是矩阵,stem
将为每一列创建一个单独的 Stem
对象。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
X
— 绘制 Y
中的数据值的位置
向量或矩阵
绘制 Y
中的数据值的位置,指定为向量或矩阵。如果 Y
为向量,X
必须是大小相同的向量。如果 Y
为矩阵,X
必须是大小相同的矩阵或长度等于 Y
中的行数的向量。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
LineSpec
— 线型、标记和颜色
字符串标量 | 字符向量
线型、标记和颜色,指定为包含符号的字符串标量或字符向量。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。
示例: "--or"
是带有圆形标记的红色虚线。
线型 | 描述 | 表示的线条 |
---|---|---|
"-" | 实线 |
|
"--" | 虚线 |
|
":" | 点线 |
|
"-." | 点划线 |
|
标记 | 描述 | 生成的标记 |
---|---|---|
"o" | 圆圈 |
|
"+" | 加号 |
|
"*" | 星号 |
|
"." | 点 |
|
"x" | 叉号 |
|
"_" | 水平线条 |
|
"|" | 垂直线条 |
|
"square" | 方形 |
|
"diamond" | 菱形 |
|
"^" | 上三角 |
|
"v" | 下三角 |
|
">" | 右三角 |
|
"<" | 左三角 |
|
"pentagram" | 五角形 |
|
"hexagram" | 六角形 |
|
颜色名称 | 短名称 | RGB 三元组 | 外观 |
---|---|---|---|
"red" | "r" | [1 0 0] | |
"green" | "g" | [0 1 0] | |
"blue" | "b" | [0 0 1] | |
"cyan" | "c" | [0 1 1] | |
"magenta" | "m" | [1 0 1] | |
"yellow" | "y" | [1 1 0] | |
"black" | "k" | [0 0 0] | |
"white" | "w" | [1 1 1] | |
tbl
— 源表
表 | 时间表
包含要绘制的数据的源表,指定为表或时间表。
yvar
— 包含 y 坐标的表变量
字符串数组 | 字符向量 | 元胞数组 | 模式 | 数值标量或向量 | 逻辑向量 | vartype()
包含 y 坐标的表变量,使用下表中的索引方案之一指定。
索引方案 | 示例 |
---|---|
变量名称:
|
|
变量索引:
|
|
变量类型:
|
|
您指定的表变量可以包含数值、分类、日期时间或持续时间值。如果 xvar
和 yvar
都指定多个变量,则变量的数目必须相同。
示例: stem(tbl,"x",["y1","y2"])
为 y 坐标指定名为 y1
和 y2
的表变量。
示例: stem(tbl,"x",2)
为 y 坐标指定第二个变量。
示例: stem(tbl,"x",vartype("numeric"))
为 y 坐标指定所有数值变量。
xvar
— 包含 x 坐标的表变量
字符串数组 | 字符向量 | 元胞数组 | 模式 | 数值标量或向量 | 逻辑向量 | vartype()
包含 x 坐标的表变量,使用下表中的索引方案之一指定。
索引方案 | 示例 |
---|---|
变量名称:
|
|
变量索引:
|
|
变量类型:
|
|
您指定的表变量可以包含数值、分类、日期时间或持续时间值。如果 xvar
和 yvar
都指定多个变量,则变量的数目必须相同。
示例: stem(tbl,["x1","x2"],"y")
为 x 坐标指定名为 x1
和 x2
的表变量。
示例: stem(tbl,2,"y")
为 x 坐标指定第二个变量。
示例: stem(tbl,vartype("numeric"),"y")
为 x 坐标指定所有数值变量。
ax
— Axes
对象
Axes
对象
Axes
对象。如果未指定坐标区,则 stem
在当前坐标区中绘图。
名称-值参数
将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参数名称,Value
是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: "LineStyle",":","MarkerFaceColor","red"
以点线形式绘制针状图并将标记面设置为红色。
此处所列的 Stem
属性只是一部分。有关完整列表,请参阅 Stem 属性。
LineStyle
— 线型
"-"
(默认) | "--"
| ":"
| "-."
| "none"
线型,指定为下表中列出的选项之一。
线型 | 描述 | 表示的线条 |
---|---|---|
"-" | 实线 |
|
"--" | 虚线 |
|
":" | 点线 |
|
"-." | 点划线 |
|
"none" | 无线条 | 无线条 |
LineWidth
— 线条宽度
0.5
(默认) | 正值
线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。
线宽不能小于像素的宽度。如果将线宽设置为小于系统上像素宽度的值,则线条显示为一个像素的宽度。
Color
— 针状图颜色
[0 0 0]
(默认) | RGB 三元组 | 十六进制颜色代码 | "r"
| "g"
| "b"
| ...
针状图颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。
对于自定义颜色,请指定 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" |
示例: "blue"
示例: [0 0 1]
示例: "#0000FF"
Marker
— 标记符号
"o"
(默认) | "+"
| "*"
| "."
| "x"
| ...
标记符号,指定为下表中列出的标记之一。
标记 | 描述 | 生成的标记 |
---|---|---|
"o" | 圆圈 |
|
"+" | 加号 |
|
"*" | 星号 |
|
"." | 点 |
|
"x" | 叉号 |
|
"_" | 水平线条 |
|
"|" | 垂直线条 |
|
"square" | 方形 |
|
"diamond" | 菱形 |
|
"^" | 上三角 |
|
"v" | 下三角 |
|
">" | 右三角 |
|
"<" | 左三角 |
|
"pentagram" | 五角形 |
|
"hexagram" | 六角形 |
|
"none" | 无标记 | 不适用 |
示例: "+"
示例: "diamond"
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" |
输出参数
h
— Stem
对象
Stem
对象
Stem
对象。这些是唯一标识符,可以用来在创建特定 Stem
对象后修改该对象的属性。
扩展功能
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)。
版本历史记录
在 R2006a 之前推出R2022b: 将表直接传递给 stem
通过将表传递给 stem
函数并后跟要绘制的变量来创建图。当您将数据指定为表时,会自动使用表变量名称对轴标签和图例(如果有)进行标注。
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)