本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

plot3

三维点或线图

说明

示例

plot3(X,Y,Z) 绘制三维空间中的坐标。

  • 要绘制由线段连接的一组坐标,请将 XYZ 指定为相同长度的向量。

  • 要在同一组坐标轴上绘制多组坐标,请将 XYZ 中的至少一个指定为矩阵,其他指定为向量。

示例

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(___,Name,Value) 使用一个或多个名称-值对组参数指定 Line 属性。在所有其他输入参数后指定属性。有关属性列表,请参阅 Line 属性

示例

plot3(ax,___) 在目标坐标区上显示绘图。将坐标区指定为上述任一语法中的第一个参数。

示例

p = plot3(___) 返回一个 Line 对象或 Line 对象数组。创建绘图后,使用 p 修改该绘图的属性。有关属性列表,请参阅 Line 属性

示例

全部折叠

t 定义为由介于 0 和 10π 之间的值组成的向量。将 stct 定义为正弦和余弦值向量。然后绘制 stctt

t = 0:pi/50:10*pi;
st = sin(t);
ct = cos(t);
plot3(st,ct,t)

创建两组 xyz 坐标。

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)

创建向量 xtytzt

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 equal
xlabel('x(t)')
ylabel('y(t)')
zlabel('z(t)')

创建向量 txtyt,并使用圆形标记绘制这些向量中的点。

t = 0:pi/20:10*pi;
xt = sin(t);
yt = cos(t);
plot3(xt,yt,t,'o')

创建向量 txtyt,并将这些向量中的点绘制为带 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 计算两组 xy 值。

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,'--')

创建向量 txtyt,并绘制这些向量中的数据。返回输出变量 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;

使用 subplot 函数创建两个坐标区,ax1ax2。通过将坐标区对象指定为 plot3 的第一个参数,在坐标区中创建单独的线图。

% Left plot
ax1 = subplot(1,2,1);
t = 0:pi/20:10*pi;
xt1 = sin(t);
yt1 = cos(t);
plot3(ax1,xt1,yt1,t)
title(ax1,'Helix With 5 Turns')

% Right plot
ax2 = subplot(1,2,2);
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')

创建 xy 为由 01 之间的随机值组成的向量。创建 z 为由随机的持续时间值组成的向量。

x = rand(1,10);
y = rand(1,10);
z = duration(rand(10,1),randi(60,10,1),randi(60,10,1));

绘制 xyz,并将 z 轴的格式指定为分和秒。然后添加轴标签,并启用网格以使图框内的点更容易可视化。

plot3(x,y,z,'o','DurationTickFormat','mm:ss')
xlabel('X')
ylabel('Y')
zlabel('Duration')
grid on

创建向量 xtytzt。绘制这些值,使用 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 的大小和形状取决于您的数据形状和您要创建的绘图类型。下表说明了最常见的情况。

绘图类型如何指定坐标
单点

指定 XYZ 为标量,并包含一个标记。例如:

plot3(1,2,3,'o')

一组点

指定 XYZ 为相同长度的行向量或列向量的任意组合。例如:

plot3([1 2 3],[4; 5; 6],[7 8 9])

多组点
(使用向量)

指定多组连续的 XYZ 向量。例如:

plot3([1 2 3],[4 5 6],[7 8 9],[1 2 3],[4 5 6],[10 11 12])

多组点
(使用矩阵)

指定 XYZ 中的至少一个为矩阵,其他为向量。XYZ 中的每个都必须有至少一个大小相同的维度。为了获得最佳结果,请指定相同形状的所有向量和相同形状的所有矩阵。例如:

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 的大小和形状取决于您的数据形状和您要创建的绘图类型。下表说明了最常见的情况。

绘图类型如何指定坐标
单点

指定 XYZ 为标量,并包含一个标记。例如:

plot3(1,2,3,'o')

一组点

指定 XYZ 为相同长度的行向量或列向量的任意组合。例如:

plot3([1 2 3],[4; 5; 6],[7 8 9])

多组点
(使用向量)

指定多组连续的 XYZ 向量。例如:

plot3([1 2 3],[4 5 6],[7 8 9],[1 2 3],[4 5 6],[10 11 12])

多组点
(使用矩阵)

指定 XYZ 中的至少一个为矩阵,其他为向量。XYZ 中的每个都必须有至少一个大小相同的维度。为了获得最佳结果,请指定相同形状的所有向量和相同形状的所有矩阵。例如:

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 的大小和形状取决于您的数据形状和您要创建的绘图类型。下表说明了最常见的情况。

绘图类型如何指定坐标
单点

指定 XYZ 为标量,并包含一个标记。例如:

plot3(1,2,3,'o')

一组点

指定 XYZ 为相同长度的行向量或列向量的任意组合。例如:

plot3([1 2 3],[4; 5; 6],[7 8 9])

多组点
(使用向量)

指定多组连续的 XYZ 向量。例如:

plot3([1 2 3],[4 5 6],[7 8 9],[1 2 3],[4 5 6],[10 11 12])

多组点
(使用矩阵)

指定 XYZ 中的至少一个为矩阵,其他为向量。XYZ 中的每个都必须有至少一个大小相同的维度。为了获得最佳结果,请指定相同形状的所有向量和相同形状的所有矩阵。例如:

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

线型、标记和颜色,指定为包含符号的字符向量或字符串。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。

示例: '--or' 是带有圆形标记的红色虚线

线型说明
-实线(默认)
--虚线
:点线
-.点划线
标记说明
o圆圈
+加号
*星号
.
x叉号
s方形
d菱形
^上三角
v下三角
>右三角
<左三角
p五角形
h六角形
颜色说明

y

黄色

m

品红色

c

青蓝色

r

红色

g

绿色

b

蓝色

w

白色

k

黑色

目标坐标区,指定为 Axes 对象。如果不指定坐标区或当前坐标区是笛卡尔坐标区,plot 函数将使用当前坐标区。

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须放在引号中。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所示。

示例: plot3([1 2],[3 4],[5 6],'Color','red') 为绘图指定一条红色线条。

注意

此处所列的属性只是一部分。有关完整列表,请参阅 Line 属性

颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。您指定的颜色会设置线条颜色。当 MarkerEdgeColor 属性设置为 'auto' 时,它还会设置标记边颜色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#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'

线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。

标记大小,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。

标记轮廓颜色,指定为 'auto'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。默认值 'auto' 使用与 Color 属性相同的颜色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#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'

标记填充颜色,指定为 'auto'、RGB 三元组、十六进制颜色代码、颜色名称或短名称。'auto' 选项使用与父坐标区的 Color 属性相同的颜色。如果您指定 'auto',并且坐标区图框不可见,则标记填充颜色为图窗的颜色。

对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 '#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'

提示

  • 使用 NaNInf 在线条中创建断点。例如,以下代码绘制一条在 z=2z=4 之间具有一个断点的线条。

     plot3([1 2 3 4 5],[1 2 3 4 5],[1 2 NaN 4 5])

  • plot3 使用基于坐标区的 ColorOrderLineStyleOrder 属性的颜色和线型。它循环使用具有第一种线型的颜色。然后对其他每种线型上再次按顺序循环使用颜色。

    您可以通过设置 ColorOrderLineStyleOrder 属性的默认值更改默认颜色和线型。例如,要将默认线型设置为带星号标记的实线、点线、无线条的圆形标记,请使用以下命令:

    set(groot,'defaultAxesLineStyleOrder',{'-*',':','o'})

扩展功能

在 R2006a 之前推出