# stem3
绘制三维离散序列数据
函数库: TyPlot
# 语法
stem3(Z)
stem3(X,Y,Z)
stem3(___,Key=Value)
stem3(ax,___)
h = stem3(___)
# 说明
stem3(Z) 将 Z 中的各项绘制为针状图,这些针状图从 xy 平面开始延伸并在各项值处以圆圈终止。xy 平面中的针状线条位置是自动生成的。示例
stem3(X,Y,Z) 将 Z 中的各项绘制为针状图,这些针状图从 xy 平面开始延伸,其中 X 和 Y 指定 xy 平面中的针状图位置。X、Y 和 Z 输入必须是大小相同的向量或矩阵。示例
stem3(___,Key=Value) 使用一个或多个名称-值对组参数修改针状图。示例
stem3(ax,___) 将图形绘制到 ax 指定的坐标区中,而不是当前坐标区 (gca) 中。选项 ax 可以位于前面的语法中的任何输入参数组合之前。示例
# 示例
行向量输入
使用一个行向量输入创建在 −π/2 和 π/2 之间的余弦值的三维针状图。
using TyPlot
figure()
X = LinRange(-pi / 2, pi / 2, 40);
Z = cos.(X);
stem3(Z)
stem3 在等间距的 x 值位置绘制 Z 的元素对相同的 y 值的图。
列向量输入
使用一个列向量输入创建在 −π/2 和 π/2 之间的余弦值的三维针状图。
using TyPlot
figure()
X = LinRange(-pi / 2, pi / 2, 40)';
Z = cos.(X);
stem3(Z)
stem3 在等间距的 y 值位置绘制 Z 的元素对相同的 x 值的图。
矩阵输入
使用一个矩阵输入创建在 −π/2 和 π/2 之间的正弦和余弦值的三维针状图。
using TyPlot
figure()
X = LinRange(-pi / 2, pi / 2, 40)';
Z = [sin.(X); cos.(X)];
stem3(Z)
stem3 在等间距的 x 值位置绘制 Z 的每一行对相同的 y 值的图。
使用向量输入指定针状线条位置
创建一个三维针状图并指定针状线条沿曲线的位置。
using TyPlot
figure()
X = LinRange(-5, 5, 60);
Y = cos.(X);
Z = X .^ 2;
stem3(X, Y, Z)
plt_view(-8, 30)
X 和 Y 确定针状线条位置。Z 确定标记高度。
使用矩阵输入指定针状线条位置
使用矩阵数据创建一个三维针状图并在 xy 平面中指定针状线条位置。
using TyPlot
using TyBase
figure()
X, Y = meshgrid2(0:0.1:1, 0:0.1:1)
Z = exp.(X + Y);
stem3(X, Y, Z)
X 和 Y 确定针状线条位置。Z 确定标记高度。
填充标记
创建在 −π 和 π 之间的余弦值的三维针状图并填充标记。
using TyPlot
X = LinRange(-pi, pi, 40);
Z = cos.(X);
stem3(Z; filled=true)

线型、标记符号和颜色选项
创建在 −π 和 π 之间的余弦值的三维针状图。对针状图使用虚线线型,将标记符号设置为星号,以及将颜色设置为品红色。
using TyPlot
figure()
X = LinRange(-pi, pi, 40);
Z = cos.(X);
h = stem3(Z; linespec="--*m")

线型、标记符号和颜色选项
创建一个三维针状图并指定针状线条沿圆的位置。将针状图设置为点线样式,将标记符号设置为星号,以及将颜色设置为品红色。
using TyPlot
figure()
theta = LinRange(0, 2 * pi, 100);
X = cos.(theta);
Y = sin.(theta);
Z = theta;
h = stem3(X, Y, Z; linespec=":*m")
X 和 Y 确定针状线条位置。Z 确定标记高度。
其他样式选项
创建在 −π 和 π 之间的余弦值的三维针状图。将标记符号设置为具有绿色面和品红色边的方形。
using TyPlot
figure()
X = LinRange(-pi, pi, 40);
Z = cos.(X);
stem3(Z; markerfmt="s", markeredgecolor="#FF00FF", markerfacecolor=[0, 1, 0])

特定坐标区上的针状图
调用 subplot 函数以创建一个 2×1 分块图布局和一个坐标区对象 ax1 和 ax2。通过将坐标区对象指定为 stem3 的第一个参数,在坐标区中创建单独的针状图。
using TyPlot
X = LinRange(-2, 2, 50);
Y = X .^ 3;
Z = exp.(X);
ax1 = subplot(2, 1, 1);
stem(ax1, X, Z)
ax2 = subplot(2, 1, 2; projection="3d");
stem3(ax2, X, Y, Z)

创建后修改针状序列
创建一个三维针状图并返回针状序列对象。
using TyPlot
X = LinRange(0, 2, 100);
Y = X .^ 3;
Z = exp.(X) .* cos.(Y);
h = stem3(X, Y, Z; filled=true);
将颜色更改为品红色,将标记面颜色设置为黄色。使用圆点表示法设置属性。
h[2].set_color("#FF00FF")
h[1].set_markeredgecolor("#FF00FF")
h[1].set_markerfacecolor("#FFFF00")
gca().set_box_aspect((2, 2, 1))
plt_view(-10,35)
plt_update()

# 输入参数
Z - 要显示的数据序列向量或矩阵
要显示的数据序列,指定为向量或矩阵。stem3 将 Z 中的每个元素绘制为一个针状线条,该线条从 xy 平面开始延伸并在数据值位置终止。
- 如果 Z 是向量,stem3 将在等间距的 x 值位置绘制所有元素对相同的 y 值的图;
- 如果 Z 是矩阵,stem3 将在等间距的 x 值位置绘制 Z 的每一行对相同的 y 值的图。
数据类型: Int16 | Int32 | Int64 | Float16 | Float32 | Float64
X - 绘制 Z 的值的位置向量或矩阵
绘制 Z 的值的位置,指定为向量或矩阵。X、Y 和 Z 输入必须是大小相同的向量或矩阵。
数据类型: Int16 | Int32 | Int64 | Float16 | Float32 | Float64
Y - 绘制 Z 的值的位置向量或矩阵
绘制 Z 的值的位置,指定为向量或矩阵。X、Y 和 Z 输入必须是大小相同的向量或矩阵。
数据类型: Int16 | Int32 | Int64 | Float16 | Float32 | Float64
ax - Axes 对象Axes 对象
Axes 对象。如果未指定坐标区,则 stem3 在当前坐标区中绘图。
# 名称-值对组参数
指定可选的、以逗号分隔的 Key=Value 对组参数。Key 为参数名称,Value 为对应的值。您可采用任意顺序指定多个名称-值对组参数,如 Key1=Value1,...,KeyN=ValueN 所示。
示例: linestyle=":", markerfacecolor="red" 以点线形式绘制针状图并将标记面设置为红色。
label - 图例nothing(默认) | 字符串 | 数值
label图例,默认 nothing,使用默认数据 data1 标记图形对象。如果设置了图例则以图例内容标记图形对象。
linespec-线型、标记和颜色字符串
线型、标记和颜色,指定为包含符号的字符串。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。
示例: '--or' 是带有圆形标记的红色虚线
| 线型 | 说明 |
|---|---|
| "-" | 实线 |
| "--" | 虚线 |
| ":" | 点线 |
| "-." | 点划线 |
| 标记 | 说明 |
|---|---|
| "o" | 圆圈 |
| "+" | 加号 |
| "*" | 星号 |
| "." | 点 |
| "x" | 叉号 |
| "_" | 水平线条 |
| "|" | 垂直线条 |
| "square" 或 "s" | 方形 |
| "diamond" 或 "d" | 菱形 |
| "^" | 上三角 |
| "v" | 下三角 |
| ">" | 右三角 |
| "<" | 左三角 |
| "pentagram" 或 "p" | 五角星(五角形) |
| "hexagram" 或 "h" | 六角星(六角形) |
| 颜色 | 说明 |
|---|---|
| "y" | 黄色 |
| "m" | 品红色 |
| "c" | 青蓝色 |
| "r" | 红色 |
| "g" | 绿色 |
| "b" | 蓝色 |
| "w" | 白色 |
| "k" | 黑色 |
linefmt - 线型"-" (默认) | "--" | ":" | "-." | "none"
针状线线型,指定为下表中列出的选项之一。
| 线型 | 说明 | 表示的线条 |
|---|---|---|
| "-" | 实线 | ![]() |
| "--" | 虚线 | ![]() |
| ":" | 点线 | ![]() |
| "-." | 点划线 | ![]() |
| "none" | 无线条 | 无线条 |
linewidth - 针状图和标记边的线条宽度0.5 (默认) | 正值
针状图和标记边的线条宽度,指定为以磅为单位的正值。
示例: 0.75
markerfmt - 标记符号"o" (默认) | "+" | "*" | "." | "x" | ...
标记符号,指定为下表中列出的标记之一。
| 值 | 说明 |
|---|---|
| "o" | 圆圈 |
| "+" | 加号 |
| "*" | 星号 |
| "." | 点 |
| "x" | 叉号 |
| "_" | 水平线条 |
| "|" | 垂直线条 |
| "square" 或 "s" | 方形 |
| "diamond" 或 "d" | 菱形 |
| "^" | 上三角 |
| "v" | 下三角 |
| ">" | 右三角 |
| "<" | 左三角 |
| "pentagram" 或 "p" | 五角星(五角形) |
| "hexagram" 或 "h" | 六角星(六角形) |
| "none" | 无标记 |
示例: markerfmt = "+"
示例: markerfmt = "diamond"
markersize - 标记大小6 (默认) | 正值
标记大小,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。
markeredgecolor - 标记轮廓颜色"auto" (默认) |十六进制颜色代码 | "r" | "g" | "b" |
标记轮廓颜色,指定为 "auto"、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认值 "auto" 将使用 CData 属性中的颜色。
对于自定义颜色,请指定 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" | 不适用 | [0, 0.5019607843137255, 0] | "#008000" | ![]() |
| 不适用 | "g" | [0, 0.5, 0] | "#007F00" | ![]() |
| 不适用 | 不适用 | [0, 1, 0] | "#00FF00" | ![]() |
| "blue" | "b" | [0, 0, 1] | "#0000FF" | ![]() |
| "cyan" | 不适用 | [0, 1, 1] | "#00FFFF" | ![]() |
| 不适用 | "c" | [0, 0.75, 0.75] | "#00BFBF" | ![]() |
| "magenta" | 不适用 | [1, 0, 1] | "#FF00FF" | ![]() |
| 不适用 | "m" | [0.75, 0, 0.75] | "#BF00BF" | ![]() |
| "yellow" | 不适用 | [1, 1, 0] | "#FFFF00" | ![]() |
| 不适用 | "y" | [0.75, 0.75, 0] | "#BFBF00" | ![]() |
| "black" | "k" | [0, 0, 0] | "#000000" | ![]() |
| "white" | "w" | [1, 1, 1] | "#FFFFFF" | ![]() |
| "none" | 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 Syslab 在许多类型的绘图中使用的默认颜色的 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" |十六进制颜色代码 | "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" | 不适用 | [0, 0.5019607843137255, 0] | "#008000" | ![]() |
| 不适用 | "g" | [0, 0.5, 0] | "#007F00" | ![]() |
| 不适用 | 不适用 | [0, 1, 0] | "#00FF00" | ![]() |
| "blue" | "b" | [0, 0, 1] | "#0000FF" | ![]() |
| "cyan" | 不适用 | [0, 1, 1] | "#00FFFF" | ![]() |
| 不适用 | "c" | [0, 0.75, 0.75] | "#00BFBF" | ![]() |
| "magenta" | 不适用 | [1, 0, 1] | "#FF00FF" | ![]() |
| 不适用 | "m" | [0.75, 0, 0.75] | "#BF00BF" | ![]() |
| "yellow" | 不适用 | [1, 1, 0] | "#FFFF00" | ![]() |
| 不适用 | "y" | [0.75, 0.75, 0] | "#BFBF00" | ![]() |
| "black" | "k" | [0, 0, 0] | "#000000" | ![]() |
| "white" | "w" | [1, 1, 1] | "#FFFFFF" | ![]() |
| "none" | 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 Syslab 在许多类型的绘图中使用的默认颜色的 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" | ![]() |
filled - 是否填充标记false (默认) | bool
是否填充标记,默认不填充标记。
# 输出参数
h - Stem3 对象Stem3 对象
Stem3 对象。这些是唯一标识符,可以用来在创建特定 Stem3 对象后修改该对象的属性。






















