2026a

# 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 可以位于前面的语法中的任何输入参数组合之前。示例


h=stem3(___) 返回 Stem3 对象 h。示例

# 示例

行向量输入

使用一个行向量输入创建在 −π/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 对象后修改该对象的属性。

# 另请参阅

bar | plot | stairs | stem