【matlab】二维作图和三维作图,超全整理!!

本篇博客超全整理了matlab经常用到的二维作图和三维作图的常用函数!!
希望对你有帮助^ _ ^!


其中部分的学习案例参考到了知乎上的这篇文章:matlab常用函数


二维作图

定义:二维作图是将平面上的数据点连接起来的平面图形。
分类:直角坐标、极坐标、对数坐标。

plot函数

plot 函数是 MATLAB 中最常用的绘图函数之一,用于创建二维图形。它可以绘制线条、点以及其他自定义图形。
例1--直角坐标

x = 0:0.01:2*pi;
y = sin(x);
plot(x,y)


例2--参数方程

%参数形式
t = 0:0.01:1;
x = t*2*pi;
y = sin(t).*cos(t);
plot(x,y)


例3--同时画多条曲线

x = 0:0.1:3;
y1 = x;
y2 = x.^2;
y3 = x.^3;
plot(x,y1,x,y2,x,y3)

图形标注–线型、颜色、符号

线性

线型可以选择有4种,如下:

符号描述示例
-实线
--虚线
:点线
-.点划线

符号

标记符号有以下几种:

符号描述示例
.小圆点
o圆圈空心圆圈
x叉号交叉符号(×)
+加号加号符号
*星号星星符号
s方形正方形
d菱形菱形符号
^上三角形顶点朝上的三角形
v下三角形顶点朝下的三角形
>右三角形顶点朝右的三角形
<左三角形顶点朝左的三角形
p五角星五边形符号
h六边形六边形符号

颜色

颜色标记有以下几种:

符号颜色名称示例
r红色Red
g绿色Green
b蓝色Blue
c青色Cyan
m洋红色Magenta
y黄色Yellow
k黑色Black
w白色White

线条样式、标记符号和颜色的组合使用

例如:

plot(x, y, '-or')  % 红色实线,带圆圈标记
plot(x, y, '--*g') % 绿色虚线,带星号标记
plot(x, y, ':b')   % 蓝色点线,无标记
plot(x, y, '-.k')  % 黑色点划线,无标记

不同顺序的组合写法,结果是相同的。

% 红色实线,带圆圈标记
plot(x, y, '-or')  % 顺序:线条样式 → 标记 → 颜色
plot(x, y, 'r-o')  % 顺序:颜色 → 标记 → 线条样式
plot(x, y, 'o-r')  % 顺序:标记 → 线条样式 → 颜色

因此顺序并不会影响绘图结果。

我们将上面的作图加上样式,如下。

x = 0:0.1:3;
y1 = x;
y2 = x.^2;
y3 = x.^3;
plot(x,y1,'red-',x,y2,'blueo',x,y3,'black-o')

常用参数属性

除了线条样式、标记符号和颜色外,还可以通过属性设置进一步自定义绘图:

属性名称描述示例
LineWidth设置线条宽度plot(x, y, ‘LineWidth’, 2)
MarkerSize 设置标记符号的大小plot(x, y, ‘o’, ‘MarkerSize’, 10)
Color设置线条颜色(RGB 三元组)plot(x, y, ‘Color’, [0.5, 0.2, 0.8])
MarkerEdgeColor设置标记边缘颜色plot(x, y, ‘o’, ‘MarkerEdgeColor’, ‘r’)
MarkerFaceColor设置标记填充颜色plot(x, y, ‘o’, ‘MarkerFaceColor’, [0 1 0])

为图形添加标注

标注名称描述示例
添加标题使用 title 函数为图形添加标题title(‘图形标题’);
添加x轴标签使用 xlabel 为 x 轴添加标签xlabel(‘x 轴标签’);
添加x轴标签使用 ylabel 为 y 轴添加标签ylabel(‘y 轴标签’);
添加 z 轴标签(3D 图形)对于 3D 图形,可以用 zlabel 为 z 轴添加标签。zlabel(‘z 轴标签’);
添加图例使用 legend 函数为图形添加图例,用于标注多条曲线或数据系列。legend(‘曲线 1’, ‘曲线 2’, ‘曲线 3’);
图形中的文本标注使用 text 函数在图形的指定位置添加文本标注。text(x, y, ‘标注内容’);
设置坐标轴范围使用 axis 或 xlim、ylim、zlim 函数。axis([xmin, xmax, ymin, ymax]); % 设置坐标轴范围 xlim([xmin, xmax]); % 设置 x 轴范围ylim([ymin, ymax]); % 设置 y 轴范围zlim([zmin, zmax]); % 设置 z 轴范围(3D 图形)
网格线使用 grid 函数添加网格线。grid on; % 打开网格线grid off; % 关闭网格线

例如:

% 生成数据
x = linspace(0, 2*pi, 100);
y = sin(x);

% 绘制图形
figure;
plot(x, y, 'b-', 'LineWidth', 2);

% 添加标题和轴标签
title('正弦函数', 'FontSize', 14);
xlabel('x 值', 'FontSize', 12);
ylabel('y 值', 'FontSize', 12);

% 添加图例
legend('y = sin(x)', 'Location', 'northeast');

% 打开网格线
grid on;

例如,下面3D图形标注:

% 生成数据
[x, y] = meshgrid(-2:0.2:2, -2:0.2:2);
z = x .* exp(-x.^2 - y.^2);

% 绘制 3D 图形
figure;
surf(x, y, z);

% 添加标题和轴标签
title('3D 表面图', 'FontSize', 14);
xlabel('X 轴', 'FontSize', 12);
ylabel('Y 轴', 'FontSize', 12);
zlabel('Z 轴', 'FontSize', 12);

% 添加色条
colorbar;


添加文本和箭头注释:

% 生成数据
x = 0:0.1:4*pi;
y = sin(x);

% 绘制图形
figure;
plot(x, y, 'r-', 'LineWidth', 2);

% 添加标题和轴标签
title('正弦波的注释示例', 'FontSize', 14);
xlabel('x', 'FontSize', 12);
ylabel('sin(x)', 'FontSize', 12);

% 添加文本标注
text(pi, 0, '\leftarrow \pi', 'FontSize', 12, 'Color', 'blue');

% 添加箭头注释
annotation('arrow', [0.3, 0.4], [0.5, 0.6], 'Color', 'green');

% 打开网格线
grid on;


使用 LaTeX 数学标注:

% 生成数据
x = linspace(0, 2*pi, 100);
y1 = sin(x);
y2 = cos(x);

% 绘制图形
figure;
plot(x, y1, 'b-', x, y2, 'r--', 'LineWidth', 2);

% 添加标题和轴标签
title('使用 LaTeX 的数学标注', 'Interpreter', 'latex', 'FontSize', 14);
xlabel('$x$', 'Interpreter', 'latex', 'FontSize', 12);
ylabel('函数值', 'FontSize', 12);

% 添加图例
legend('$\sin(x)$', '$\cos(x)$', 'Interpreter', 'latex', 'Location', 'southwest');

% 打开网格线
grid on;

plotyy函数

plotyy 是一个功能强大的函数,用于在同一张图上绘制具有两个 y 轴的图形。它非常适合用于比较具有不同量纲或范围的数据集。plotyy 会创建两个 y 轴,一个在左侧,另一个在右侧,同时共享一个 x 轴。有利于图形数据的对比分析。

plotyy函数的基本语法:

[AX, H1, H2] = plotyy(X1, Y1, X2, Y2)

示例 1:简单双 y 轴绘图

% 数据
x = 0:0.1:10;
y1 = sin(x);   % 第一组数据
y2 = cos(x);   % 第二组数据

% 使用 plotyy 绘图
[AX, H1, H2] = plotyy(x, y1, x, y2);

% 添加标题和轴标签
title('双 y 轴绘图');
xlabel('X 轴');
ylabel(AX(1), 'sin(x)'); % 左侧 y 轴标签
ylabel(AX(2), 'cos(x)'); % 右侧 y 轴标签

% 设置线条属性
set(H1, 'LineWidth', 2, 'Color', 'b'); % 左侧曲线属性
set(H2, 'LineWidth', 2, 'Color', 'r'); % 右侧曲线属性

在这里插入图片描述
示例 2:自定义绘图函数

% 数据
x = 1:10;
y1 = x.^2;      % 第一组数据
y2 = log(x);    % 第二组数据

% 使用 bar 和 plot 绘制双 y 轴图
[AX, H1, H2] = plotyy(x, y1, x, y2, @bar, @plot);

% 添加标题和轴标签
title('使用自定义绘图函数');
xlabel('X 轴');
ylabel(AX(1), '平方值'); % 左侧 y 轴标签
ylabel(AX(2), '对数值'); % 右侧 y 轴标签

% 设置线条属性
set(H1, 'FaceColor', 'c');  % 左侧柱状图颜色
set(H2, 'LineWidth', 2, 'Color', 'm'); % 右侧曲线颜色


示例 3:调整坐标轴范围和网格线

% 数据
x = 0:0.1:10;
y1 = exp(-0.1*x) .* sin(x); % 第一组数据
y2 = exp(0.1*x);            % 第二组数据

% 使用 plotyy 绘图
[AX, H1, H2] = plotyy(x, y1, x, y2);

% 调整坐标轴范围
xlim(AX(1), [0 10]); % 左侧 x 轴范围
ylim(AX(1), [-1 1]); % 左侧 y 轴范围
ylim(AX(2), [0 30]); % 右侧 y 轴范围

% 添加标题和轴标签
title('调整坐标轴范围');
xlabel('X 轴');
ylabel(AX(1), '衰减正弦波');
ylabel(AX(2), '指数函数');

% 添加网格线
grid(AX(1), 'on');
grid(AX(2), 'on');

使用yyaxis 替代plotyy

从 MATLAB R2016a 开始,plotyy 已被推荐用 yyaxis 替代。yyaxis 提供了更灵活和更现代化的双 y 轴绘图方法。

x = 0:0.1:10;
y1 = sin(x);
y2 = cos(x);

figure;
yyaxis left
plot(x, y1, 'b-', 'LineWidth', 2);
ylabel('sin(x)');

yyaxis right
plot(x, y2, 'r--', 'LineWidth', 2);
ylabel('cos(x)');

title('使用 yyaxis 的双 y 轴绘图');
xlabel('X 轴');
grid on;

subplot函数

在实际应用中,经常需要在一个图形窗口中绘制若干个独立的图形,这就需要对图形窗口进行分割。分割后的图形窗口由若干个绘图区组成,每一个绘图区可以建立独立的坐标系并绘制图形。同一图形窗口下的不同图形称为子图。

subplot(m,n,p)

该函数把当前窗口分成m×n个绘图区,m行,每行n个绘图区,区号按行优先编号。其中第p个区为当前活动区。每一个绘图区允许以不同的坐标系单独绘制图形。

x = 0:0.1:2*pi;
y1 = sin(x);
y2 = cos(x);
y3 = tan(x);
y4 = sin(x).*cos(x);
subplot(2,2,1)
plot(x,y1,'blacko')
subplot(2,2,2)
plot(x,y2,'ro')
subplot(2,2,3)
plot(x,y3,'bo')
subplot(2,2,4)
plot(x,y4,'go')

在这里插入图片描述

% 数据
x = 0:0.1:10;
y1 = sin(x);
y2 = cos(x);
y3 = x.^2;
y4 = exp(-0.1*x) .* sin(x);

% 创建一个新的图形窗口
figure;

% 子图 1:正弦和余弦函数
subplot(2, 2, 1); % 创建2x2的子图网格,并激活第一个子图
plot(x, y1, 'b-', 'LineWidth', 2);
hold on;
plot(x, y2, 'r--', 'LineWidth', 2);
title('正弦和余弦函数');
xlabel('X 轴');
ylabel('函数值');
legend('sin(x)', 'cos(x)');
grid on;

% 子图 2:平方函数
subplot(2, 2, 2);
plot(x, y3, 'g-', 'LineWidth', 2);
title('平方函数');
xlabel('X 轴');
ylabel('平方值');
grid on;

% 子图 3:衰减正弦波
subplot(2, 2, 3);
plot(x, y4, 'm-', 'LineWidth', 2);
title('衰减正弦波');
xlabel('X 轴');
ylabel('振幅');
grid on;

% 子图 4:双 y 轴图(使用 yyaxis)
subplot(2, 2, 4);
yyaxis left
plot(x, y1, 'b-', 'LineWidth', 2);
ylabel('sin(x)');

yyaxis right
plot(x, y2, 'r--', 'LineWidth', 2);
ylabel('cos(x)');

title('双 y 轴图');
xlabel('X 轴');
grid on;

% 调整整个图形的布局
sgtitle('多种图形示例');

在这里插入图片描述

其他类型的作图函数

scatter:散点图

scatter函数用于绘制数据点的散点图,适合展示离散数据的分布。

x = randn(1, 100); % 随机生成 100 个点
y = randn(1, 100); 
scatter(x, y, 50, 'filled'); % 50 是点的大小
title('散点图');
xlabel('X 轴');
ylabel('Y 轴');
grid on;

bar:柱状图

bar用于绘制柱状图,适合展示分类数据。

categories = {'A', 'B', 'C', 'D'};
values = [5, 10, 15, 20];
bar(values);
set(gca, 'XTickLabel', categories); % 设置分类标签
title('柱状图');
xlabel('类别');
ylabel('值');
grid on;

bar3:三维柱状图

它用于绘制三维柱状图。

data = magic(4); % 生成示例数据
bar3(data);
title('三维柱状图');
xlabel('X 轴');
ylabel('Y 轴');
zlabel('值');
grid on;

histogram:直方图

它用于展示数据的分布情况。

data = randn(1, 1000); % 生成正态分布数据
histogram(data, 20); % 将数据分为 20 个区间
title('直方图');
xlabel('数据值');
ylabel('频率');
grid on;

在这里插入图片描述

pie:饼图

它用于展示数据在总量中的占比。

data = [10, 20, 30, 40];
labels = {'A', 'B', 'C', 'D'};
pie(data, labels);
title('饼图');

在这里插入图片描述

area:面积图

它用于展示累积数据的面积。

x = 1:10;
y = cumsum(rand(1, 10)); % 累积和
area(x, y);
title('面积图');
xlabel('X 轴');
ylabel('累积值');
grid on;

在这里插入图片描述

contour 和 contourf:等高线图

它们用于绘制二维数据的等高线图。

[x, y] = meshgrid(-2:0.1:2, -2:0.1:2);
z = x.^2 + y.^2; % 示例函数
contour(x, y, z, 20); % 20 条等高线
title('等高线图');
xlabel('X 轴');
ylabel('Y 轴');
grid on;

contourf(x, y, z, 20); % 填充等高线图
colorbar; % 添加颜色条
title('填充等高线图');
xlabel('X 轴');
ylabel('Y 轴');
grid on;

quiver:矢量场图

用于绘制方向场或矢量场。

[x, y] = meshgrid(-2:0.5:2, -2:0.5:2);
u = -y; % x 方向的分量
v = x;  % y 方向的分量
quiver(x, y, u, v); % 绘制矢量场
title('矢量场图');
xlabel('X 轴');
ylabel('Y 轴');
grid on;

在这里插入图片描述

heatmap:热力图

用于展示矩阵数据的大小或强度的分布。

data = rand(5, 5); % 随机生成 5x5 矩阵
heatmap(data);
title('热力图');

stem:离散点图

用于绘制离散数据的棒图。

x = 1:10;
y = rand(1, 10);
stem(x, y, 'filled');
title('离散点图');
xlabel('X 轴');
ylabel('Y 轴');
grid on;

在这里插入图片描述

polarplot:极坐标图

用于绘制极坐标数据。

theta = linspace(0, 2*pi, 100);
rho = abs(sin(2*theta));
polarplot(theta, rho);
title('极坐标图');

boxplot:箱线图

用于展示数据分布的统计图。

data = randn(100, 3); % 生成 3 组数据
boxplot(data, 'Labels', {'组 1', '组 2', '组 3'});
title('箱线图');
ylabel('值');

errorbar:误差条图

用于展示数据的误差范围。

x = 1:5;
y = [2, 4, 6, 8, 10];
errors = [0.5, 0.4, 0.6, 0.3, 0.5];
errorbar(x, y, errors, 'o-', 'LineWidth', 1.5);
title('误差条图');
xlabel('X 轴');
ylabel('Y 轴');
grid on;

在这里插入图片描述

fill:填充图

用于绘制填充区域的图形。

x = [1, 2, 3, 4, 5];
y1 = [1, 2, 1, 2, 1];
y2 = [2, 3, 2, 3, 2];
fill([x, fliplr(x)], [y1, fliplr(y2)], 'g', 'FaceAlpha', 0.3);
title('填充图');
xlabel('X 轴');
ylabel('Y 轴');
grid on;

三维作图

plot3:三维线图

plot3 是 MATLAB 中用于绘制 三维空间曲线 的函数。它可以用来绘制三维空间中的点、线或曲线。
语法如下:

plot3(X, Y, Z)
plot3(X, Y, Z, LineSpec)
plot3(X, Y, Z, Name, Value)
plot3(ax, ...)
h = plot3(...)
  • X, Y, Z:

    • 分别表示三维空间中点的 x、y、z坐标,可以是向量或矩阵。

    • 如果 X、Y、Z 是向量,则 plot3 会绘制一条连接这些点的曲线。

    • 如果 X、Y、Z 是矩阵,则 plot3 会绘制多条曲线,每列对应一条曲线。

  • LineSpec(可选):

    • 用于指定线条的样式、颜色和标记。

    • 例如:‘r–’ 表示红色虚线,‘b*’ 表示蓝色星号标记。

  • Name, Value(可选):

    • 用于指定线条的额外属性,例如线宽、标记大小等。

    • 例如:‘LineWidth’, 2 设置线宽为 2。

  • ax(可选):

    • 指定绘图的坐标轴。
  • h(输出):

    • 返回绘制的图形对象的句柄。
t = 0:0.01:10; % 参数 t
x = sin(t);    % x 坐标
y = cos(t);    % y 坐标
z = t;         % z 坐标

plot3(x, y, z, 'b-', 'LineWidth', 2); % 绘制蓝色曲线
xlabel('X'); ylabel('Y'); zlabel('Z'); % 添加坐标轴标签
title('3D Curve: Helix'); % 添加标题
grid on; % 显示网格

在这里插入图片描述
绘制两条三维曲线:

t = 0:0.01:10; % 参数 t
x1 = sin(t);   % 第一条曲线的 x 坐标
y1 = cos(t);   % 第一条曲线的 y 坐标
z1 = t;        % 第一条曲线的 z 坐标

x2 = cos(t);   % 第二条曲线的 x 坐标
y2 = sin(t);   % 第二条曲线的 y 坐标
z2 = t;        % 第二条曲线的 z 坐标

plot3(x1, y1, z1, 'r-', 'LineWidth', 2); % 绘制第一条红色曲线
hold on; % 保持当前图形
plot3(x2, y2, z2, 'b--', 'LineWidth', 2); % 绘制第二条蓝色虚线曲线
xlabel('X'); ylabel('Y'); zlabel('Z'); % 添加坐标轴标签
title('Multiple 3D Curves'); % 添加标题
grid on; % 显示网格
legend('Curve 1', 'Curve 2'); % 添加图例

在这里插入图片描述
绘制三维散点图:

x = rand(1, 100); % 随机生成 100 个 x 坐标
y = rand(1, 100); % 随机生成 100 个 y 坐标
z = rand(1, 100); % 随机生成 100 个 z 坐标

plot3(x, y, z, 'ro', 'MarkerSize', 8); % 绘制红色圆圈标记
xlabel('X'); ylabel('Y'); zlabel('Z'); % 添加坐标轴标签
title('3D Scatter Plot'); % 添加标题
grid on; % 显示网格

在这里插入图片描述

mesh函数

mesh 是 MATLAB 中用于绘制 三维网格图 的函数。它通常用于可视化二维平面上的三维数据,例如函数 z=f(x,y) 的曲面。mesh 函数会生成一个由网格线组成的曲面图,网格线的颜色可以根据高度(z 值)变化。

语法:

mesh(X, Y, Z)
mesh(Z)
mesh(..., C)
mesh(ax, ...)
h = mesh(...)

参数说明

  • X, Y:

    • 分别表示网格点的 x 和 y 坐标。

    • 可以是向量或矩阵。

    • 如果 X 和 Y 是向量,则 mesh 会根据向量的长度生成网格。

    • 如果 X 和 Y 是矩阵,则它们必须与 Z 的大小相同。

  • Z:表示网格点的

    • z 坐标(高度)。

    • 必须是一个矩阵。

  • C(可选):

    • 指定网格线的颜色。

    • 如果未指定,则默认使用 Z 的值来确定颜色。

  • ax(可选):

    • 指定绘图的坐标轴。
  • h(输出):

    • 返回绘制的图形对象的句柄。

下面代码绘制了一个函数 z = x ⋅ e − x 2 − y 2 z=x·e^{-x^2-y^2} z=xex2y2的三维网络图。

[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2); % 生成网格点
Z = X .* exp(-X.^2 - Y.^2); % 计算 Z 值

mesh(X, Y, Z); % 绘制网格图
xlabel('X'); ylabel('Y'); zlabel('Z'); % 添加坐标轴标签
title('3D Mesh Plot'); % 添加标题
colorbar; % 显示颜色条


示例2:使用颜色矩阵

[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2); % 生成网格点
Z = sin(X) + cos(Y); % 计算 Z 值
C = X + Y; % 定义颜色矩阵

mesh(X, Y, Z, C); % 绘制网格图,使用 C 定义颜色
xlabel('X'); ylabel('Y'); zlabel('Z'); % 添加坐标轴标签
title('3D Mesh Plot with Custom Colors'); % 添加标题
colorbar; % 显示颜色条


示例 3:仅使用 Z 矩阵

下面代码使用 peaks 函数生成数据,并绘制其三维网格图。

Z = peaks(50); % 生成一个 50x50 的峰值函数数据
mesh(Z); % 绘制网格图
xlabel('X'); ylabel('Y'); zlabel('Z'); % 添加坐标轴标签
title('3D Mesh Plot of Peaks Function'); % 添加标题
colorbar; % 显示颜色条


常用属性:
以下是一些常用的 Name, Value 属性(通过 set 函数或返回的句柄 h 设置):

  • ‘EdgeColor’:设置网格线的颜色。

    • 例如:‘EdgeColor’, ‘blue’ 将网格线设置为蓝色。
  • ‘FaceColor’:设置网格面的颜色。

    • 例如:‘FaceColor’, ‘interp’ 使用插值颜色填充网格面。
  • ‘LineWidth’:设置网格线的宽度。

  • ‘FaceAlpha’:设置网格面的透明度(0 到 1 之间)。

surf函数

surf 是 MATLAB 中用于绘制 三维曲面图 的函数。它通常用于可视化二维平面上的三维数据,例如函数 z=f(x,y) 的曲面。与 mesh 函数不同,surf 会生成一个由颜色填充的曲面图,颜色可以根据高度(z 值)变化。
用法如下:

surf(X, Y, Z)
surf(Z)
surf(..., C)
surf(ax, ...)
h = surf(...)

语法说明:

  • X, Y:分别表示网格点的 x 和 y 坐标。

    • 可以是向量或矩阵。

    • 如果 X 和 Y 是向量,则 surf 会根据向量的长度生成网格。

    • 如果 X 和 Y 是矩阵,则它们必须与 Z 的大小相同。

  • Z:表示网格点的 z 坐标(高度)。

    • 必须是一个矩阵。
  • C(可选):

    • 指定曲面的颜色。

    • 如果未指定,则默认使用 Z 的值来确定颜色。

  • ax(可选):

    • 指定绘图的坐标轴。
  • h(输出):

    • 返回绘制的图形对象的句柄。

示例1:该代码绘制了一个函数 z = x ⋅ e − x 2 − y 2 z=x·e^{-x^2-y^2} z=xex2y2的三维网络图。

[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2); % 生成网格点
Z = X .* exp(-X.^2 - Y.^2); % 计算 Z 值

surf(X, Y, Z); % 绘制曲面图
xlabel('X'); ylabel('Y'); zlabel('Z'); % 添加坐标轴标签
title('3D Surface Plot'); % 添加标题
colorbar; % 显示颜色条


示例2:

在这里插入图片描述

[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2); % 生成网格点
Z = sin(X) + cos(Y); % 计算 Z 值
C = X + Y; % 定义颜色矩阵

surf(X, Y, Z, C); % 绘制曲面图,使用 C 定义颜色
xlabel('X'); ylabel('Y'); zlabel('Z'); % 添加坐标轴标签
title('3D Surface Plot with Custom Colors'); % 添加标题
colorbar; % 显示颜色条


示例3:使用 peaks 函数生成数据,并绘制其三维曲面图。

  • ‘FaceColor’:设置曲面面的颜色。

    • 例如:‘FaceColor’, ‘interp’ 使用插值颜色填充曲面。
  • ‘LineWidth’:设置边缘线的宽度。

  • ‘FaceAlpha’:设置曲面面的透明度(0 到 1 之间)。

  • ‘FaceLighting’:设置曲面的光照效果。

    • 例如:‘FaceLighting’, ‘gouraud’ 使用 Gouraud 光照。

surfc函数

在曲面图的基础上,添加等高线。

[x, y] = meshgrid(-2:0.1:2, -2:0.1:2);
z = sin(x) .* cos(y);
surfc(x, y, z);
title('曲面+等高线图');
xlabel('X 轴');
ylabel('Y 轴');
zlabel('Z 轴');

在这里插入图片描述

contour3:三维等高线图

绘制三维空间中的等高线。

[x, y] = meshgrid(-2:0.1:2, -2:0.1:2);
z = x.^2 + y.^2;
contour3(x, y, z, 20);
title('三维等高线图');
xlabel('X 轴');
ylabel('Y 轴');
zlabel('Z 轴');
grid on;

scatter3:三维散点图

用于在三维空间中绘制散点。

x = randn(100, 1);
y = randn(100, 1);
z = randn(100, 1);
scatter3(x, y, z, 36, z, 'filled');
title('三维散点图');
xlabel('X 轴');
ylabel('Y 轴');
zlabel('Z 轴');
colorbar;

在这里插入图片描述

fill3:三维填充图

用于在三维空间中绘制填充的多边形。

x = [1, 2, 3, 1];
y = [1, 3, 1, 1];
z = [1, 1, 2, 1];
fill3(x, y, z, 'c');
title('三维填充图');
xlabel('X 轴');
ylabel('Y 轴');
zlabel('Z 轴');
grid on;

slice:三维切片图

用于在三维数据集中绘制切片。

[x, y, z] = meshgrid(-2:0.2:2, -2:0.2:2, -2:0.2:2);
v = x .* exp(-x.^2 - y.^2 - z.^2);
slice(x, y, z, v, 0, [], []);
title('三维切片图');
xlabel('X 轴');
ylabel('Y 轴');
zlabel('Z 轴');
colorbar;

在这里插入图片描述




matlab二维和三维作图就先总结到这里啦,后续学到相关内容我将继续补充~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

釉色清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值