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 轴上的位置。
绘制在 0 和 之间计算的 50 个余弦数据值并为针状图指定 x 值集。
figure X = linspace(0,2*pi,50)'; Y = cos(X); stem(X,Y)

第一个向量输入确定每个针状线条在 x 轴上的位置。
绘制在 0 和 之间计算的 50 个正弦和余弦数据值并为针状图指定 x 值集。
figure X = linspace(0,2*pi,50)'; Y = [cos(X), 0.5*sin(X)]; stem(X,Y)

向量输入确定这两个数据序列的 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

您可以使用 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 是向量,stem 将创建一个 Stem 对象。如果 Y 是矩阵,stem 将为每一列创建一个单独的 Stem 对象。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration
绘制 Y 中的数据值的位置,指定为向量或矩阵。如果 Y 为向量,X 必须是大小相同的向量。如果 Y 为矩阵,X 必须是大小相同的矩阵或长度等于 Y 中的行数的向量。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | categorical | datetime | duration
线型、标记和颜色,指定为包含符号的字符串标量或字符向量。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。
示例: "--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] |
|
包含要绘制的数据的源表,指定为表或时间表。
包含 y 坐标的表变量,使用下表中的索引方案之一指定。
| 索引方案 | 示例 |
|---|---|
变量名称:
|
|
变量索引:
|
|
变量类型:
|
|
您指定的表变量可以包含数值、分类、日期时间或持续时间值。如果 xvar 和 yvar 都指定多个变量,则变量的数目必须相同。
示例: stem(tbl,"x",["y1","y2"]) 为 y 坐标指定名为 y1 和 y2 的表变量。
示例: stem(tbl,"x",2) 为 y 坐标指定第二个变量。
示例: stem(tbl,"x",vartype("numeric")) 为 y 坐标指定所有数值变量。
包含 x 坐标的表变量,使用下表中的索引方案之一指定。
| 索引方案 | 示例 |
|---|---|
变量名称:
|
|
变量索引:
|
|
变量类型:
|
|
您指定的表变量可以包含数值、分类、日期时间或持续时间值。如果 xvar 和 yvar 都指定多个变量,则变量的数目必须相同。
示例: stem(tbl,["x1","x2"],"y") 为 x 坐标指定名为 x1 和 x2 的表变量。
示例: stem(tbl,2,"y") 为 x 坐标指定第二个变量。
示例: stem(tbl,vartype("numeric"),"y") 为 x 坐标指定所有数值变量。
Axes 对象。如果未指定坐标区,则 stem 在当前坐标区中绘图。
名称-值参数
以 Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。
示例: "LineStyle",":","MarkerFaceColor","red" 以点线形式绘制针状图并将标记面设置为红色。
此处所列的 Stem 属性只是一部分。有关完整列表,请参阅 Stem 属性。
线型,指定为下表中列出的选项之一。
| 线型 | 描述 | 表示的线条 |
|---|---|---|
"-" | 实线 |
|
"--" | 虚线 |
|
":" | 点线 |
|
"-." | 点划线 |
|
"none" | 无线条 | 无线条 |
线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。
线宽不能小于像素的宽度。如果将线宽设置为小于系统上像素宽度的值,则线条显示为一个像素的宽度。
针状图颜色,指定为 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" | 不适用 | 不适用 | 不适用 | 无颜色 |
下表列出了浅色和深色主题中绘图的默认调色板。
| 调色板 | 调色板颜色 |
|---|---|
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。 |
|
|
|
您可以使用 orderedcolors 和 rgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。
示例: "blue"
示例: [0 0 1]
示例: "#0000FF"
标记符号,指定为下表中列出的标记之一。
| 标记 | 描述 | 生成的标记 |
|---|---|---|
"o" | 圆圈 |
|
"+" | 加号 |
|
"*" | 星号 |
|
"." | 点 |
|
"x" | 叉号 |
|
"_" | 水平线条 |
|
"|" | 垂直线条 |
|
"square" | 方形 |
|
"diamond" | 菱形 |
|
"^" | 上三角 |
|
"v" | 下三角 |
|
">" | 右三角 |
|
"<" | 左三角 |
|
"pentagram" | 五角形 |
|
"hexagram" | 六角形 |
|
"none" | 无标记 | 不适用 |
示例: "+"
示例: "diamond"
标记大小,指定为以磅为单位的正值,其中 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" | 不适用 | 不适用 | 不适用 | 无颜色 |
下表列出了浅色和深色主题中绘图的默认调色板。
| 调色板 | 调色板颜色 |
|---|---|
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。 |
|
|
|
您可以使用 orderedcolors 和 rgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。
标记填充颜色,指定为 "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" | 不适用 | 不适用 | 不适用 | 无颜色 |
下表列出了浅色和深色主题中绘图的默认调色板。
| 调色板 | 调色板颜色 |
|---|---|
在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。 |
|
|
|
您可以使用 orderedcolors 和 rgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。
RGB = orderedcolors("gem");
H = rgb2hex(RGB);在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。
在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。
输出参量
Stem 对象。这些是唯一标识符,可以用来在创建特定 Stem 对象后修改该对象的属性。
扩展功能
stem 函数支持 GPU 数组输入,但有以下用法说明和限制:
此函数接受 GPU 数组,但不在 GPU 上运行。
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出现在,针状图在 x 轴的左右两侧会有填充,以防止与图框的边重叠。
通过将表传递给 stem 函数并后跟要绘制的变量来创建图。当您将数据指定为表时,会自动使用表变量名称对轴标签和图例(如果有)进行标注。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)





























