matlab使用2-基础绘图
文章目录
- matlab使用2-基础绘图
-
- [1. 二维平面绘图](#1. 二维平面绘图)
- [2. 三维立体绘图](#2. 三维立体绘图)
- [3. 图形窗口的分割](#3. 图形窗口的分割)
1. 二维平面绘图
matlab
% 创建一些二维数据
x = 0:0.01:10; % x轴的数据点,从0到10,间隔为0.01
y = sin(x); % y轴的数据点,是x的正弦值
% 使用plot函数绘制二维线图
figure; % 创建一个新的图形窗口
plot(x, y); % 绘制二维线图
% 添加标签和标题
xlabel('x'); % x轴标签
ylabel('sin(x)'); % y轴标签
title('二维平面绘图:y = sin(x)'); % 图形标题
% 还可以添加图例(如果需要的话)
% legend('sin(x)'); % 在这个简单的例子中不需要图例
% 显示网格(可选)
grid on; % 打开网格
% 设置坐标轴的范围(可选)
% axis([xmin xmax ymin ymax]); % 设置x轴和y轴的范围
% 调整图形大小和位置(可选)
% set(gcf, 'Position', [left bottom width height]); % 调整图形窗口的位置和大小
-
基本步骤
- 创建二维数据
- 新建幕布 + 绘制二维平面图
- 图表配置:标题、标签、颜色等等
-
图标配置相关
-
颜色选项参数:
颜色 字符 红 r 绿 g 蓝 b 黄 y 粉红 m 青 c 白 w 黑 k -
线性选项参数:
线性 符号 示例 实线 - --- 虚线 -- --------- 冒号线 : ... 点画线 -. ---·---·---· -
数据标记点选项参数:
符号 点类型 · 点 + 十字号 o 圆圈 * 星号 x 叉号 s 正方形 d 棱形 ^ 上三角 v 下三角 < 左三角 > 右三角 p 五角星 h 六角星
-
-
二维平面图表-多线同一表
matlab% 创建一些二维数据 x = 0:0.01:10; % x轴的数据点 y1 = sin(x); % 第一条线的y值,是x的正弦值 y2 = cos(x); % 第二条线的y值,是x的余弦值 % 创建一个新的图形窗口 figure; % 绘制第一条线(正弦曲线),红色,实线 plot(x, y1, 'r-'); % 保持当前的图形,以便添加更多线 hold on; % 绘制第二条线(余弦曲线),蓝色,带圆圈标记的实线 plot(x, y2, 'b-'); % 添加标签和标题 xlabel('x'); ylabel('y'); title('二维平面绘图:y = sin(x) 和 y = cos(x)'); % 添加图例 legend('sin(x)', 'cos(x)'); % 显示网格(可选) grid on; % 释放图形保持状态,以便下一个plot命令创建新图 hold off; % 通常不需要显式调用hold off,除非你要确保后续plot命令创建新图
2. 三维立体绘图
-
首先创建X和Y的网格数据
-
然后使用这些网格数据和一个函数来计算Z的值
-
然后,使用不同的函数来绘制三维图形
-
示例:
-
使用
plot3
绘制三维线图matlab% 创建三维数据 x = linspace(0, 2*pi, 100); y = linspace(0, 2*pi, 100); [X, Y] = meshgrid(x, y); Z = sin(sqrt(X.^2 + Y.^2)); % 绘制三维线图 figure; plot3(X(:), Y(:), Z(:), 'b-'); title('三维线图'); xlabel('X'); ylabel('Y'); zlabel('Z'); grid on;
-
使用
surf
绘制三维曲面图matlab% 使用与上面相同的X, Y, Z数据 figure; surf(X, Y, Z); title('三维曲面图'); xlabel('X'); ylabel('Y'); zlabel('Z'); colorbar; % 添加颜色条 lighting gouraud; % 改进光照效果 camlight; % 添加光源
-
使用
mesh
绘制三维网格图matlab% 使用与上面相同的X, Y, Z数据 figure; mesh(X, Y, Z); title('三维网格图'); xlabel('X'); ylabel('Y'); zlabel('Z');
-
使用
contour3
绘制三维等高线图matlab% 使用与上面相同的X, Y, Z数据 figure; contour3(X, Y, Z, 20); % 20表示等高线的级别数 title('三维等高线图'); xlabel('X'); ylabel('Y'); zlabel('Z');
-
-
注意事项
meshgrid
函数用于创建X和Y的网格数据,这在三维图形绘制中是必要的:
操作符用于将X、Y和Z的列向量转换为行向量,这在plot3
中特别有用,因为plot3
期望其参数是行向量- 在
surf
、mesh
和contour3
等函数中,通常直接使用由meshgrid
创建的二维网格
3. 图形窗口的分割
选择哪种方法取决于具体需求,例如想要创建的子图的数量、位置、样式以及是否需要与其他MATLAB功能(如工具栏、菜单等)集成等等
-
subplot
函数-
subplot
函数用于在单个图形窗口中创建多个子图。你可以指定子图的网格位置和当前激活的子图 -
示例:
matlabsubplot(2, 2, 1); % 创建 2x2 网格的第一个子图 plot(1:10); subplot(2, 2, 2); % 创建 2x2 网格的第二个子图 plot(10:-1:1); subplot(2, 2, 3); % 创建 2x2 网格的第三个子图 bar(1:5); subplot(2, 2, 4); % 创建 2x2 网格的第四个子图 pie([1 2 3 4]);
-
-
**
axes
**-
axes
函数允许更精细地控制子图的位置和大小,可以通过指定位置向量和轴属性来定义轴的范围和样式 -
示例:
matlabaxes('Position', [0.1 0.1 0.4 0.4]); % 创建一个轴,占据窗口的左下角 plot(1:10); hold on; % 保持当前轴上的图形,以便在同一轴上添加更多图形 plot(10:-1:1, 'r'); % 在同一轴上添加红色线条 axes('Position', [0.6 0.1 0.4 0.4]); % 创建一个新的轴,占据窗口的右下角 bar(1:5);
-
-
appdesigner 或 GUIDE
- 对于更复杂的图形用户界面(GUI),可以使用 MATLAB App Designer 或 GUIDE 工具来创建具有多个面板或轴的窗口
- 这些工具提供了图形化的界面来设计和布局GUI组件
-
tiledlayout 和 nexttile
-
tiledlayout
和nexttile
函数提供了一种更现代的方式来创建平铺的图形布局 -
允许定义网格布局,并在这些网格中放置轴
-
示例:
matlabtiledlayout(2, 2); % 创建一个 2x2 的平铺布局 nexttile; % 激活第一个轴 plot(1:10); nexttile; % 激活第二个轴 plot(10:-1:1); nexttile; % 激活第三个轴 bar(1:5); nexttile; % 激活第四个轴 pie([1 2 3 4]);
-