目录
stem3函数的功能是绘制三维离散序列数据。
语法
cs
stem3(Z)
stem3(X,Y,Z)
stem3(___,"filled")
stem3(___,LineSpec)
stem3(tbl,xvar,yvar,zvar)
stem3(___,Name,Value)
stem3(ax,___)
h = stem3(___)
说明
向量和矩阵数据
**stem3(Z)**将 Z 中的各项绘制为针状图,这些针状图从 xy 平面开始延伸并在各项值处以圆圈终止。xy 平面中的针状线条位置是自动生成的。
**stem3(X,Y,Z)**将 Z 中的各项绘制为针状图,这些针状图从 xy 平面开始延伸,其中 X 和 Y 指定 xy 平面中的针状图位置。X、Y 和 Z 输入必须是大小相同的向量或矩阵。
**stem3(___,"filled")**填充圆。可将此选项与上述语法中的任何输入参数组合一起使用。
**stem3(___,LineSpec)**指定线型、标记符号和颜色。
表数据
**stem3(tbl,xvar,yvar,zvar)**绘制表 tbl 中的变量 xvar、yvar 和 zvar。为每个维度指定一个表变量。(从 R2022b 开始)
其他选项
**stem3(___,Name,Value)**使用一个或多个名称-值对组参数修改针状图。
**stem3(ax,___)**将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。选项 ax 可以位于上述语法中的任何输入参数组合之前。
**h = stem3(___)**返回 Stem 对象 h。
示例
行向量输入
使用一个行向量输入创建在 −π/2 和 π/2 之间的余弦值的三维针状图。
cpp
figure
X = linspace(-pi/2,pi/2,40);
Z = cos(X);
stem3(Z)
如图所示:
stem3 在等间距的 x 值位置绘制 Z 的元素对相同的 y 值的图。
列向量输入
使用一个列向量输入创建在 −π/2 和 π/2 之间的余弦值的三维针状图。
cpp
figure
X = linspace(-pi/2,pi/2,40)';
Z = cos(X);
stem3(Z)
如图所示:
stem3 在等间距的 y 值位置绘制 Z 的元素对相同的 x 值的图。
矩阵输入
使用一个矩阵输入创建在 −π/2 和 π/2 之间的正弦和余弦值的三维针状图。
cs
figure
X = linspace(-pi/2,pi/2,40);
Z = [sin(X); cos(X)];
stem3(Z)
如图所示:
stem3 在等间距的 x 值位置绘制 Z 的每一行对相同的 y 值的图。
使用向量输入指定针状线条位置
创建一个三维针状图并指定针状线条沿曲线的位置。使用 view 可调整图窗中坐标区的角度。
cpp
figure
X = linspace(-5,5,60);
Y = cos(X);
Z = X.^2;
stem3(X,Y,Z)
view(-8,30)
如图所示:
X 和 Y 确定针状线条位置。Z 确定标记高度。
使用矩阵输入指定针状线条位置
使用矩阵数据创建一个三维针状图并在 xy 平面中指定针状线条位置。
cpp
figure
[X,Y] = meshgrid(0:.1:1);
Z = exp(X+Y);
stem3(X,Y,Z)
如图所示:
X 和 Y 确定针状线条位置。Z 确定标记高度。
填充标记
创建在 −π 和 π 之间的余弦值的三维针状图并填充标记。
cs
X = linspace(-pi,pi,40);
Z = cos(X);
stem3(Z,'filled')
如图所示:
线型、标记符号和颜色选项
创建在 −π 和 π 之间的余弦值的三维针状图。对针状图使用虚线线型,将标记符号设置为星号,以及将颜色设置为品红色。
cs
figure
X = linspace(-pi,pi,40);
Z = cos(X);
stem3(Z,'--*m')
如图所示:
要仅指定三个 LineSpec 选项中的两个,请在字符向量中省略第三个选项。例如,'*m' 设置标记符号和颜色并使用默认线型。
线型、标记符号和颜色选项
创建一个三维针状图并指定针状线条沿圆的位置。将针状图设置为点线样式,将标记符号设置为星号,以及将颜色设置为品红色。
cs
figure
theta = linspace(0,2*pi);
X = cos(theta);
Y = sin(theta);
Z = theta;
stem3(X,Y,Z,':*m')
如图所示:
X 和 Y 确定针状线条位置。Z 确定标记高度。
其他样式选项
创建在 −π 和 π 之间的余弦值的三维针状图。将标记符号设置为具有绿色面和品红色边的方形。
cpp
figure
X = linspace(-pi,pi,40);
Z = cos(X);
stem3(Z,'Marker','s',...
'MarkerEdgeColor','m',...
'MarkerFaceColor','g')
如图所示:
绘制表中的数据
自 R2022b 开始提供
基于表数据绘图的一种便捷方法是将表传递给 stem3 函数,并指定要绘制的变量。
将 weather.csv 作为时间表 tbl 读取。然后显示该表的前三行。
cpp
tbl = readtimetable("weather.csv");
head(tbl,3)
Time WindDirection WindSpeed Humidity Temperature RainInchesPerMinute CumulativeRainfall PressureHg PowerLevel LightIntensity
____________________ _____________ _________ ________ ___________ ___________________ __________________ __________ __________ ______________
25-Oct-2021 00:00:09 46 1 84 49.2 0 0 29.96 4.14 0
25-Oct-2021 00:01:09 45 1.6 84 49.2 0 0 29.96 4.139 0
25-Oct-2021 00:02:09 36 2.2 84 49.2 0 0 29.96 4.138 0
在 x 轴上绘制 Time 变量,在 y 轴上绘制 Temperature 变量,在 z 轴上绘制 CumulativeRainfall 变量。以 h 形式返回 Stem 对象。请注意,轴标签与表变量名称匹配。
cpp
h = stem3(tbl,"Time","Temperature","CumulativeRainfall");
如图所示:
通过设置 Color 属性,将绘图的颜色更改为红色。
cs
h.Color = [0.7 0 0.2];
如图所示:
特定坐标区上的针状图
自 R2019b 开始提供
可以使用 tiledlayout 和 nexttile 函数显示分块图。调用 tiledlayout 函数以创建一个 2×1 分块图布局。调用 nexttile 函数以创建坐标区对象 ax1 和 ax2。通过将坐标区对象指定为 stem3 的第一个参数,在坐标区中创建单独的针状图。
cpp
X = linspace(-2,2,50);
Y = X.^3;
Z = exp(X);
tiledlayout(2,1)
% Top plot
ax1 = nexttile;
stem(ax1,X,Z)
% Bottom plot
ax2 = nexttile;
stem3(ax2,X,Y,Z)
如图所示:
创建后修改针状序列
创建一个三维针状图并返回针状序列对象。
cpp
X = linspace(0,2);
Y = X.^3;
Z = exp(X).*cos(Y);
h = stem3(X,Y,Z,'filled');
如图所示:
将颜色更改为品红色,将标记面颜色设置为黄色。使用 view 可调整图窗中坐标区的角度。使用圆点表示法设置属性。
cs
h.Color = 'm';
h.MarkerFaceColor = 'y';
view(-10,35)
如图所示:
参数说明
Z --- 要显示的数据序列
要显示的数据序列,指定为向量或矩阵。stem3 将 Z 中的每个元素绘制为一个针状线条,该线条从 xy 平面开始延伸并在数据值位置终止。
-
如果 Z 是行向量,stem3 将在等间距的 x 值位置绘制所有元素对相同的 y 值的图。
-
如果 Z 是列向量,stem3 将在等间距的 y 值位置绘制所有元素对相同的 x 值的图。
-
如果 Z 是矩阵,stem3 将在等间距的 x 值位置绘制 Z 的每一行对相同的 y 值的图。
X --- 绘制 Z 的值的位置
绘制 Z 的值的位置,指定为向量或矩阵。X、Y 和 Z 输入必须是大小相同的向量或矩阵。
Y --- 绘制 Z 的值的位置
绘制 Z 的值的位置,指定为向量或矩阵。X、Y 和 Z 输入必须是大小相同的向量或矩阵。
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 --- 源表
包含要绘制的数据的源表,指定为表或时间表。
zvar --- 包含 z 坐标的表变量
包含 z 坐标的表变量,使用下表中的索引方案之一指定。仅指定一个变量。
索引方案 | 示例 |
---|---|
变量名称: * 字符串标量或字符向量。 * pattern 对象。模式对象只能引用一个变量。 | * "A" 或 'A' - 名为 A 的变量 * "Var"+digitsPattern(1) - 名称为 "Var" 的变量后跟一位数字 |
变量索引: * 引用变量在表中位置的索引编号。 * 逻辑向量。通常,此向量的长度与变量的数目相同,但可以省略尾部的 0 或 false 值。 | * 3 - 表中的第三个变量 * [false false true] - 第三个变量 |
变量类型: * vartype 下标,用于选择指定类型的表变量。该下标只能引用一个变量。 | * vartype("double") - 包含双精度值的变量 |
指定的表变量可以包含数值、逻辑、分类、日期时间或持续时间值。
xvar --- 包含 x 坐标的表变量
包含 x 坐标的表变量,使用下表中的索引方案之一指定。仅指定一个变量。
索引方案 | 示例 |
---|---|
变量名称: * 字符串标量或字符向量。 * pattern 对象。模式对象只能引用一个变量。 | * "A" 或 'A' - 名为 A 的变量 * "Var"+digitsPattern(1) - 名称为 "Var" 的变量后跟一位数字 |
变量索引: * 引用变量在表中位置的索引编号。 * 逻辑向量。通常,此向量的长度与变量的数目相同,但可以省略尾部的 0 或 false 值。 | * 3 - 表中的第三个变量 * [false false true] - 第三个变量 |
变量类型: * vartype 下标,用于选择指定类型的表变量。该下标只能引用一个变量。 | * vartype("double") - 包含双精度值的变量 |
指定的表变量可以包含数值、逻辑、分类、日期时间或持续时间值。
yvar --- 包含 y 坐标的表变量
包含 y 坐标的表变量,使用下表中的索引方案之一指定。仅指定一个变量。
索引方案 | 示例 |
---|---|
变量名称: * 字符串标量或字符向量。 * pattern 对象。模式对象只能引用一个变量。 | * "A" 或 'A' - 名为 A 的变量 * "Var"+digitsPattern(1) - 名称为 "Var" 的变量后跟一位数字 |
变量索引: * 引用变量在表中位置的索引编号。 * 逻辑向量。通常,此向量的长度与变量的数目相同,但可以省略尾部的 0 或 false 值。 | * 3 - 表中的第三个变量 * [false false true] - 第三个变量 |
变量类型: * vartype 下标,用于选择指定类型的表变量。该下标只能引用一个变量。 | * vartype("double") - 包含双精度值的变量 |
指定的表变量可以包含数值、逻辑、分类、日期时间或持续时间值。
ax --- Axes 对象
Axes 对象。如果未指定坐标区,则 stem 在当前坐标区中绘图。
LineStyle --- 线型
线型,指定为下表中列出的选项之一。
线型 | 描述 | 表示的线条 |
---|---|---|
"-" | 实线 | |
"--" | 虚线 | |
":" | 点线 | |
"-." | 点划线 | |
"none" | 无线条 | 无线条 |
LineWidth --- 针状图和标记边的线条宽度
针状图和标记边的线条宽度,指定为以磅为单位的正值。
Color --- 针状图颜色
针状图颜色,指定为 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" |
Marker --- 标记符号
标记符号,指定为下表中列出的标记之一。
标记 | 描述 | 生成的标记 |
---|---|---|
"o" | 圆圈 | |
"+" | 加号 | |
"*" | 星号 | |
"." | 点 | |
"x" | 叉号 | |
"_" | 水平线条 | |
"|" | 垂直线条 | |
"square" | 方形 | |
"diamond" | 菱形 | |
"^" | 上三角 | |
"v" | 下三角 | |
">" | 右三角 | |
"<" | 左三角 | |
"pentagram" | 五角形 | |
"hexagram" | 六角形 | |
"none" | 无标记 | 不适用 |
MarkerSize --- 标记大小
标记大小,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。
MarkerEdgeColor --- 标记轮廓颜色
标记轮廓颜色,指定为 "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 --- 标记填充颜色
标记填充颜色,指定为 "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 对象后修改其属性。