三维线图
全页折叠
语法
plot3(X,Y,Z)
plot3(X,Y,Z,LineSpec)
plot3(X1,Y1,Z1,...,Xn,Yn,Zn)
plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn)
plot3(tbl,xvar,yvar,zvar)
plot3(ax,___)
plot3(___,Name,Value)
p = plot3(___)
说明
向量和矩阵数据
示例
plot3(X,Y,Z)
绘制三维空间中的坐标。
要绘制由线段连接的一组坐标,请将
X
、Y
、Z
指定为相同长度的向量。要在同一组坐标轴上绘制多组坐标,请将
X
、Y
或Z
中的至少一个指定为矩阵,其他指定为向量。
示例
plot3(X,Y,Z,LineSpec)
使用指定的线型、标记和颜色创建绘图。
示例
plot3(X1,Y1,Z1,...,Xn,Yn,Zn)
在同一组坐标轴上绘制多组坐标。使用此语法作为将多组坐标指定为矩阵的替代方法。
示例
plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn)
可为每个 XYZ
三元组指定特定的线型、标记和颜色。您可以对某些三元组指定 LineSpec
,而对其他三元组省略它。例如,plot3(X1,Y1,Z1,'o',X2,Y2,Z2)
对第一个三元组指定标记,但没有对第二个三元组指定标记。
表数据
示例
plot3(tbl,xvar,yvar,zvar)
绘制表 tbl
中的变量 xvar
、yvar
和 zvar
。要绘制一个数据集,请为 xvar
、yvar
和 zvar
各指定一个变量。要绘制多个数据集,请为其中至少一个参量指定多个变量。对于指定多个变量的参量,指定的变量数目必须相同。(自 R2022a 开始提供)
其他选项
示例
plot3(ax,___)
在目标坐标区上显示绘图。将坐标区指定为上述任一语法中的第一个参量。
示例
plot3(___,Name,Value)
使用一个或多个名称-值对组参量指定 Line
属性。在所有其他输入参量后指定属性。有关属性列表,请参阅 Line 属性。
示例
返回一个 p
= plot3(___)Line
对象或 Line
对象数组。创建绘图后,使用 p
修改该绘图的属性。有关属性列表,请参阅 Line 属性。
示例
全部折叠
绘制三维螺旋图
打开实时脚本
将 t
定义为由介于 0 和 10 之间的值组成的向量。将 st
和 ct
定义为正弦和余弦值向量。然后绘制 st
、ct
和 t
。
t = 0:pi/50:10*pi;st = sin(t);ct = cos(t);plot3(st,ct,t)
绘制多个线条
打开实时脚本
创建两组 x、y 和 z 坐标。
t = 0:pi/500:pi;xt1 = sin(t).*cos(10*t);yt1 = sin(t).*sin(10*t);zt1 = cos(t);xt2 = sin(t).*cos(12*t);yt2 = sin(t).*sin(12*t);zt2 = cos(t);
调用 plot3
函数,并指定连续的 XYZ
三元组。
plot3(xt1,yt1,zt1,xt2,yt2,zt2)
使用矩阵绘制多个线条
打开实时脚本
创建包含三行 x 坐标的矩阵 X
。创建包含三行 y 坐标的矩阵 Y
。
t = 0:pi/500:pi;X(1,:) = sin(t).*cos(10*t);X(2,:) = sin(t).*cos(12*t);X(3,:) = sin(t).*cos(20*t);Y(1,:) = sin(t).*sin(10*t);Y(2,:) = sin(t).*sin(12*t);Y(3,:) = sin(t).*sin(20*t);
创建矩阵 Z
,其中包含所有三组坐标的 z 坐标。
Z = cos(t);
在同一组坐标轴上绘制所有三组坐标。
plot3(X,Y,Z)
指定等间距刻度单位和轴标签
打开实时脚本
创建向量 xt
、yt
和 zt
。
t = 0:pi/500:40*pi;xt = (3 + cos(sqrt(32)*t)).*cos(t);yt = sin(sqrt(32) * t);zt = (3 + cos(sqrt(32)*t)).*sin(t);
绘制数据,并使用 axis equal
命令沿每个轴等间距隔开刻度单位。然后为每个轴指定标签。
plot3(xt,yt,zt)axis equalxlabel('x(t)')ylabel('y(t)')zlabel('z(t)')
将点绘制为不带线的标记
打开实时脚本
创建向量 t
、xt
和 yt
,并使用圆形标记绘制这些向量中的点。
t = 0:pi/20:10*pi;xt = sin(t);yt = cos(t);plot3(xt,yt,t,'o')
自定义颜色和标记
打开实时脚本
创建向量 t
、xt
和 yt
,并将这些向量中的点绘制为带 10 磅圆形标记的蓝线。使用十六进制颜色代码指定标记的填充颜色为浅蓝色。
t = 0:pi/20:10*pi;xt = sin(t);yt = cos(t);plot3(xt,yt,t,'-o','Color','b','MarkerSize',10,... 'MarkerFaceColor','#D9FFFF')
指定线型
打开实时脚本
创建向量 t
。然后使用 t
计算两组 x 和 y 值。
t = 0:pi/20:10*pi;xt1 = sin(t);yt1 = cos(t);xt2 = sin(2*t);yt2 = cos(2*t);
绘制这两组值。第一组使用默认线条,第二组使用虚线。
plot3(xt1,yt1,t,xt2,yt2,t,'--')
在绘图后修改线条
打开实时脚本
创建向量 t
、xt
和 yt
,并绘制这些向量中的数据。返回输出变量 p
中的图线条。
t = linspace(-10,10,1000);xt = exp(-t./10).*sin(5*t);yt = exp(-t./10).*cos(5*t);p = plot3(xt,yt,t);
将线宽更改为 3
。
p.LineWidth = 3;
绘制表中的数据
打开实时脚本
自 R2022a 开始
基于表数据绘图的一种便捷方法是将表传递给 plot3
函数,并指定要绘制的变量。
创建向量 x
、y
和 t
,并将向量放在一个表中。然后显示该表的前三行。
t = (0:pi/20:10*pi)';x = sin(t);y = cos(t);tbl = table(x,y,t);head(tbl,3)
x y t _______ _______ _______ 0 1 0 0.15643 0.98769 0.15708 0.30902 0.95106 0.31416
绘制 x
、y
和 t
表变量。以 p
形式返回 Line
对象。请注意,轴标签与变量名称匹配。
p = plot3(tbl,"x","y","t");
要修改线条的各个方面,请对 Line
对象设置 LineStyle
、Color
和 Marker
属性。例如,将线条更改为具有圆形标记的红色点线。
p.LineStyle = ":";p.Color = "red";p.Marker = "o";
在 x 和 y 轴上绘制多个表变量
打开实时脚本
自 R2022a 开始
创建一个包含五个变量的表。然后显示该表的前三行。
t = (0:pi/500:pi)';x1 = sin(t).*cos(10*t);x2 = sin(t).*cos(12*t);y1 = sin(t).*sin(10*t);y2 = sin(t).*sin(12*t);z = cos(t);tbl = table(x1,x2,y1,y2,z);head(tbl,3)
x1 x2 y1 y2 z _________ _________ __________ __________ _______ 0 0 0 0 1 0.0062707 0.0062653 0.00039452 0.00047329 0.99998 0.012467 0.012423 0.0015749 0.0018877 0.99992
在 x 轴上绘制 x1
和 x2
变量,在 y 轴上绘制 y1
和 y2
变量,在 z 轴上绘制 z
变量。然后,添加一个图例。请注意,图例条目与变量名称匹配。
plot3(tbl,["x1","x2"],["y1","y2"],"z")legend
指定目标坐标区
打开实时脚本
从 R2019b 开始,您可以使用 tiledlayout
和 nexttile
函数显示分块图。调用 tiledlayout
函数以创建 1×2 分块图布局。调用 nexttile
函数以创建坐标区对象 ax1
和 ax2
。通过将坐标区对象指定为 plot
3 的第一个参量,在坐标区中创建单独的线图。
tiledlayout(1,2)% Left plotax1 = nexttile;t = 0:pi/20:10*pi;xt1 = sin(t);yt1 = cos(t);plot3(ax1,xt1,yt1,t)title(ax1,'Helix With 5 Turns')% Right plotax2 = nexttile;t = 0:pi/20:10*pi;xt2 = sin(2*t);yt2 = cos(2*t);plot3(ax2,xt2,yt2,t)title(ax2,'Helix With 10 Turns')
使用自定义刻度格式绘制持续时间数据
打开实时脚本
创建 x
和 y
为由 0
和 1
之间的随机值组成的向量。创建 z
为由随机的持续时间值组成的向量。
x = rand(1,10);y = rand(1,10);z = duration(rand(10,1),randi(60,10,1),randi(60,10,1));
绘制 x
、y
和 z
,并将 z 轴的格式指定为分和秒。然后添加轴标签,并启用网格以使图框内的点更容易可视化。
plot3(x,y,z,'o','DurationTickFormat','mm:ss')xlabel('X')ylabel('Y')zlabel('Duration')grid on
绘制线条并在一个数据点上放置标记
打开实时脚本
创建向量 xt
、yt
和 zt
。绘制这些值,使用 LineSpec
参量指定具有圆形标记的实线。指定 MarkerIndices
属性以在第 200 个数据点上放置一个标记。
t = 0:pi/500:pi;xt(1,:) = sin(t).*cos(10*t);yt(1,:) = sin(t).*sin(10*t);zt = cos(t);plot3(xt,yt,zt,'-o','MarkerIndices',200)
输入参数
全部折叠
X
— x 坐标
标量 | 向量 | 矩阵
x 坐标,指定为标量、向量或矩阵。X
的大小和形状取决于您的数据形状和您要创建的绘图类型。下表说明了最常见的情况。
绘图类型 | 如何指定坐标 |
---|---|
单点 | 指定 plot3(1,2,3,'o') |
一组点 | 指定 plot3([1 2 3],[4; 5; 6],[7 8 9]) |
多组点 (使用向量) | 指定多组连续的 plot3([1 2 3],[4 5 6],[7 8 9],[1 2 3],[4 5 6],[10 11 12]) |
多组点 (使用矩阵) | 指定 plot3([1 2 3],[4 5 6],[7 8 9; 10 11 12]) |
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
Y
— y 坐标
标量 | 向量 | 矩阵
y 坐标,指定为标量、向量或矩阵。Y
的大小和形状取决于您的数据形状和您要创建的绘图类型。下表说明了最常见的情况。
绘图类型 | 如何指定坐标 |
---|---|
单点 | 指定 plot3(1,2,3,'o') |
一组点 | 指定 plot3([1 2 3],[4; 5; 6],[7 8 9]) |
多组点 (使用向量) | 指定多组连续的 plot3([1 2 3],[4 5 6],[7 8 9],[1 2 3],[4 5 6],[10 11 12]) |
多组点 (使用矩阵) | 指定 plot3([1 2 3],[4 5 6],[7 8 9; 10 11 12]) |
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| categorical
| datetime
| duration
Z
— z 坐标
标量 | 向量 | 矩阵
z 坐标,指定为标量、向量或矩阵。Z
的大小和形状取决于您的数据形状和您要创建的绘图类型。下表说明了最常见的情况。
绘图类型 | 如何指定坐标 |
---|---|
单点 | 指定 plot3(1,2,3,'o') |
一组点 | 指定 plot3([1 2 3],[4; 5; 6],[7 8 9]) |
多组点 (使用向量) | 指定多组连续的 plot3([1 2 3],[4 5 6],[7 8 9],[1 2 3],[4 5 6],[10 11 12]) |
多组点 (使用矩阵) | 指定 plot3([1 2 3],[4 5 6],[7 8 9; 10 11 12]) |
数据类型: 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
— 源表
表 | 时间表
包含要绘制的数据的源表,指定为表或时间表。
xvar
— 包含 x 坐标的表变量
字符向量 | 字符串数组 | 元胞数组 | 模式 | 数值标量或向量 | 逻辑向量 | vartype()
包含 x 坐标的表变量,使用下表中的索引方案之一指定。
索引方案 | 示例 |
---|---|
变量名称:
|
|
变量索引:
|
|
变量类型:
|
|
您指定的表变量可以包含数值、分类、日期时间或持续时间值。如果为多个参量指定多个变量,则为每个参量指定的变量数目必须相同。
示例: plot3(tbl,["x1","x2"],"y","z")
为 x 坐标指定名为 x1
和 x2
的表变量。
示例: plot3(tbl,2,"y","z")
为 x 坐标指定第二个变量。
示例: plot3(tbl,vartype("numeric"),"y","z")
为 x 坐标指定所有数值变量。
yvar
— 包含 y 坐标的表变量
字符向量 | 字符串数组 | 元胞数组 | 模式 | 数值标量或向量 | 逻辑向量 | vartype()
包含 y 坐标的表变量,使用下表中的索引方案之一指定。
索引方案 | 示例 |
---|---|
变量名称:
|
|
变量索引:
|
|
变量类型:
|
|
您指定的表变量可以包含数值、分类、日期时间或持续时间值。如果为多个参量指定多个变量,则为每个参量指定的变量数目必须相同。
示例: plot3(tbl,"x",["y1","y2"],"z")
为 y 坐标指定名为 y1
和 y2
的表变量。
示例: plot3(tbl,"x",2,"z")
为 y 坐标指定第二个变量。
示例: plot3(tbl,"x",vartype("numeric"),"z")
为 y 坐标指定所有数值变量。
zvar
— 包含 z 坐标的表变量
字符向量 | 字符串数组 | 元胞数组 | 模式 | 数值标量或向量 | 逻辑向量 | vartype()
包含 z 坐标的表变量,使用下表中的索引方案之一指定。
索引方案 | 示例 |
---|---|
变量名称:
|
|
变量索引:
|
|
变量类型:
|
|
您指定的表变量可以包含数值、分类、日期时间或持续时间值。如果为多个参量指定多个变量,则为每个参量指定的变量数目必须相同。
示例: plot3(tbl,"x","y",["z1","z2"])
为 z 坐标指定名为 z1
和 z2
的表变量。
示例: plot3(tbl,"x","y",2)
为 z 坐标指定第二个变量。
示例: plot3(tbl,"x","y",vartype("numeric"))
为 z 坐标指定所有数值变量。
ax
— 目标坐标区
Axes
对象
目标坐标区,指定为 Axes
对象。如果不指定坐标区,且当前坐标区是笛卡尔坐标区,则 plot3
将使用当前坐标区。
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: plot3([1 2],[3 4],[5 6],'Color','red')
为绘图指定一条红色线条。
注意
此处所列的属性只是一部分。有关完整列表,请参阅 Line 属性。
Color
— 颜色
[0 0.4470 0.7410]
(默认) | RGB 三元组 | 十六进制颜色代码 | 'r'
| 'g'
| 'b'
| ...
颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。您指定的颜色会设置线条颜色。当 MarkerEdgeColor 属性设置为 '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" |
提示
使用
NaN
或Inf
在线条中创建断点。例如,以下代码绘制一条在z=2
和z=4
之间具有一个断点的线条。plot3([1 2 3 4 5],[1 2 3 4 5],[1 2 NaN 4 5])
plot3
基于坐标区的 ColorOrder 和 LineStyleOrder 属性选用颜色和线型。plot3
先对第一种线型循环使用每种颜色。然后,再对下一个线型循环使用每种颜色,以此类推。通过在坐标区中设置
ColorOrder
或LineStyleOrder
属性,可以在绘图后更改颜色和线型。您也可以调用 colororder 函数来更改图窗中所有坐标区的色序。(自 R2019b 开始提供)
扩展功能
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: 用表创建的绘图将保留轴和图例标签中的特殊字符
当您将表和一个或多个变量名称传递给 plot3
函数时,轴和图例标签现在会显示表变量名称中包含的任何特殊字符,如下划线。以前,特殊字符会被解释为 TeX 或 LaTeX 字符。
例如,如果将包含名为 Sample_Number
的变量的表传递给 plot3
函数,则下划线会出现在轴和图例标签中。在 R2022a 及更早版本中,下划线解释为下标。
版本 | 表变量 "Sample_Number" 的标签 |
---|---|
R2022b | |
R2022a |
要显示具有 TeX 或 LaTeX 格式的轴和图例标签,请手动指定标签。例如,在绘制后,使用所需的标签字符串调用 xlabel
或 legend
函数。
xlabel("Sample_Number")legend(["Sample_Number" "Another_Legend_Label"])
R2022a: 将表直接传递给 plot3
通过将表传递给 plot3
函数并后跟要绘制的变量来创建图。当您将数据指定为表时,会自动使用表变量名称对轴标签和图例(如果有)进行标注。
另请参阅
函数
- axis | scatter3 | bar3 | tiledlayout | nexttile | grid
属性
- Line 属性
主题
- 绘制日期时间
- 对分类数据绘图
- Plots That Support Tables
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:
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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 简体中文
- English
- 日本 (日本語)
- 한국 (한국어)
Contact your local office