第4章matlab绘图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在图形窗体中,由下至上分别为绘制的第一、二、三条曲 线,根据系统的默认设置分别为蓝色、绿色和红色。
例1说明了plot函数的基本用法,同时也说明了plot函数的
系统默认设置。不过例子中使用的数据是两个向量,分别作为 X轴的数据和Y轴的数据。MATLAB是如何处理的呢? 利用plot函数可以直接将矩阵的数据绘制在图形窗体中, 这个时候plot函数将矩阵的每一列数据作为一条曲线绘制在窗 体中,如例2所示。
* 绘图区域:图形窗体的绘图区域是面积最大的一部分,
在这个区域中可以绘制各种曲线,显示图形图像文件,以及完 成对图形图像或者曲线的编辑。
在MATLAB中进行数据可视化的过程主要有如下步骤:
* 准备需要绘制在MATLAB图形窗体中的数据。
*创建图形窗体,并且选择绘制数据的区域。图形窗体可 以包含多个绘图区域。 * 使用MATLAB的绘图函数绘制图形或者曲线。 * 设置曲线的属性,例如线型、线宽等。
清除当前图形窗体内容的指令为clf。 创建新的图形窗体的指令为figure。
若不希望将绘制的曲线点连接起来,则在 使用plot函数绘制曲线的时候不要指定线条的 样式,仅指定时标选项和色彩选项。例如接例
3执行下面的指令:
plot(t,y,'rv',t,y2,'ks',t,y3,'mp')
grid on
axis函数可修改图形窗体轴的范围,基本格式如Biblioteka Baidu:
axis([xmin xmax ymin ymax]) 其中xmin和xmax决定X轴范围,ymin和ymax决定Y轴 范围。 在命令行窗口中,直接键入下面的指令:
>> axis
ans =
0
1
0
1
则MATLAB按照默认设置自动创建一个图形窗体,包含 一个空白的轴,其中X轴的范围和Y轴的范围都为0~1。
得到的图形如图7所示。
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6 7
图7 仅绘制曲线点
MATLAB允许对利用plot函数绘制的曲线 进行更细致的控制,需要通过设置曲线的属性 来完成。绘制曲线时,可以通过修改下列属性 完成对曲线细节的设置: * LineWidth:曲线的宽度,单位为point。 * MarkerEdgeColor:曲线时标边缘的色彩。 * MarkerFaceColor:填充曲线时标的色彩。 * MarkerSize:曲线时标的大小,单位为point。
的第一步骤。
MATLAB的绘图都是在MATLAB图形窗体中进行的,而 所有图形数据可视化的工作也都以图形窗体为主。MATLAB 图形窗体如图1所示。
图1 MATLAB的图形窗体
MATLAB的图形窗体主要包括如下几个部分:
* 菜单栏:图形窗一般包括一个菜单栏,利用这个菜单栏 可完成对窗体中各种对象的基本操作。 * 工具条:图形窗体的工具条用来完成对图形对象的一般 性操作。
* 设置绘图区域的属性,并且添加数据网格线。
* 为绘制的图形添加标题、轴标签或者标注文本等。 * 打印或者导出图形。
2 基本二维绘图
2.1 基本绘图指令
数据可视化使用最频繁的函数就是plot函数,该函数能够将向量 或者矩阵中的数据绘制在图形窗中,并且可以指定不同的线型和 色彩。plot函数不仅能够绘制一条曲线,还可以一次绘制多条曲 线。
subplot(2,2,4);plot(peaks);grid on;
% 子图的使用特别的用法
% 创建新的图形窗体 figure(2);clf
% 图形窗体分割为4行5列,选择第2~4号区域
subplot(4,5,2:4);plot(1:10);grid on; % 选择向量中指定的区域 subplot(4,5,[7 8 9 12 13 14]);plot(peaks);grid on; % 选择单一的区域 subplot(4,5,11);plot(membrane);grid on; % 选择多个区域 subplot(4,5,16:20);surf(membrane);grid on;
在MATLAB命令行窗口中键入下面的指令: x = 0:pi/1000:2*pi; y = sin(2*x+pi/4); plot(x,y) 例1共有三条指令,前面两条是准备绘制的数据,x和y两个变 量为长度相同的行向量,其中y是利用三角函数处理的数据。 而plot函数使用默认的设置将数据x和y绘制在图形窗体中。系 统默认的设置为蓝色的连续线条。绘制图形如图2所示。
例2 利用plot函数绘制矩阵数据。
在MATLAB命令行窗口中,键入下面的指令:
A = pascal(5)
A=
1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 1 5 15 35
1
5 15 35 70
plot(A)
70
60
50
第五列数据
40 30
20
第一列数据
10
0
1
1.5
2
例3 设置曲线的样式。
在MATLAB命令行窗口中,键入下面的指令: t = 0:pi/20:2*pi; y = sin(t); y2 =sin(t-pi/2);
y3 = sin(t-pi);
plot(t,y,'-.rv',t,y2,'--ks',t,y3,':mp')
例3在同一个图形窗中绘制三条不同的曲线, 使用了不同的时标、色彩和线型,绘制的曲线 如图5所示。
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6 7
图2 在MATLAB图形窗体中绘制蓝色曲线
plot函数能够同时绘制多条曲线,在命令行中键入下面的指令: (继续前面的指令) plot(x,y,x,y+1,x,y+2)
图3 绘制多条曲线
第4章 MATLAB绘图
1 概述
2 基本二维绘图 3 格式化绘图
4 特殊图形函数
5 基本三维绘图 6 保存和输出图形
7 数据插值和曲线拟合
1 概
述
数据的可视化是MATLAB的强大功能之一,而这仅仅是 MATLAB图形功能的一部分,MATLAB的图形功能主要包括 数据可视化、创建用户图形界面和简单数据统计处理等,其中, 数据的可视化不仅仅是二维的,还可以在三维空间展示数据, 而数据或者图形的可视化也是进行数据处理或者图形图像处理
例5 使用子图——subplotex.m。
function subplotex % 子图的使用示例 x = 0:.1:2*pi; % 创建新的图形窗体
figure(1);clf;
% 分隔窗体为2行2列,分别在不同的区域绘图 subplot(2,2,1);plot(1:10);grid on; subplot(2,2,2);plot(x,sin(x));grid on; subplot(2,2,3);plot(x,exp(-x),'r');grid on;
例6 axis函数使用示例。
在命令行窗口中,键入下面的指令:
x = 0:pi/100:pi/2;
y = tan(x);
plot(x,y,'ko')
grid on
18 16 14 12 10 8 6 4 2
15 x 10
0 0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
图11 自动比例设置的图形窗体内容
plot函数的基本使用语法格式为 绘制一条曲线:plot(xdata, ydata, 'color_linestyle_marker') 绘制多条曲线:plot(xdata1, ydata1, 'clm1', xdata2, ydata2,'clm2', ......)
例1 MATLAB基本绘图指令的使用。
5 4.5 4 3.5 3 2.5 2 1.5 1 0.5 0 0 0.5 1 1.5
由于默认的图形窗体轴能够根据数据的范围自动调节
图形显示的比例,所以图11显示的结果并不是那么直
观,绘制的数据几乎排成了一条直线,所以需要修改 显示范围。 axis([0,pi/2,0,5]) 该命令将轴的范围缩小,这时,前面数据的细节 就可以很容易地查看出来了,如图12所示。 axis函数除了能够用来直接设置轴的范围外,还 能够用来设置轴是否按照数据的范围自动调节等
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6 7
图5 使用不同的样式绘制曲线
提示:常用的绘图命令
为了能够直观地观察数据曲线,使用grid 命令将轴的坐标线绘制出来,命令为grid on。
图6就是将例3的结果添加上坐标网格线之后的
效果。
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6 7
图6 绘制坐标网格线
若不希望出现坐标网格线,则执行grid off命令。 若向已有曲线的图形窗体中增加曲线,则使用 hold on命令锁定当前的图形窗体。
hold off命令解除锁定状态。
subplot函数的基本用法如下:
subplot(m,n,p)
其中,m和n为将图形窗体分割成的行数和列数,p为
选定的窗体区域的序号,以行元素优先顺序排列。
例如,在命令行窗口中键入指令:
subplot(2,3,4)
将图形窗体分割成为二行三列,并且将第四个区域设
置为当前的绘图区域。例5说明了子图的使用方法。
10 5 0
0.4 0.2 0 0 2 4 6 8 -5 -10
0
20
40
60
图9 例5 代码007行~010行的图形结果
10 5 0 10 5 0 -5 -10 40 0
0
2
4
6
8
10
1 0 -1 1 0 -1 40
0
20
10
20
30
40
50
30
20
10
0
0
10
20
30
40
图10 例5代码014行~021行的图形结果
2.5
3
3.5
4
4.5
5
图4 绘制矩阵的数据
2.2 设置曲线的样式属性 为了能够在plot函数中控制曲线的样式,MATLAB预先设 置了不同的曲线样式属性值,分别控制曲线的色彩、线型和 标识符,在表1中对plot函数的标识符进行了总结。
表1 plot函数的标识符
色 color r g b c m y k w 彩 说明 红色 绿色 蓝色 青 洋红 黄色 黑色 白色 时 marker + o * . x s d ^ v > < p h 标 说明 加号 圆圈 星号 点 十字 矩形 菱形 上三角 下三角 右三角 左三角 五边形 六边形 线 型 说明 linestyle 实线 -虚线 : 点线 -。 点划线
3
2
1
0
-1
-2
-3 -4
-3
-2
-1
0
1
2
3
4
图8 设置曲线的细节属性
2.3 使用子图
图形窗体中不仅可以包含一个轴,还可以划分为
多个显示区域,用户可以根据需要把数据绘制在指定
区域中,这种特性就是利用子图功能来完成的。使用 subplot函数选择绘制区域即可。 subplot函数把图形窗体分割成指定行数和列数的 区域,在每个区域内都可以包含一个绘图轴,利用该 函数选择不同的绘图区,然后所有的绘图操作都将结 果输出到指定的绘图区中。
注意在例5中,选择多个绘图区域时subplot函数的格式。 运行例5的代码,在命令行窗口中,键入下面的指令: >> subplotex 则MATLAB创建两个图形窗体,分别绘制分割的图形,如图9、 10所示。
10 8 6
1 0.5 0
4 2 0 0 5 10 -0.5 -1
0
2
4
6
8
1 0.8 0.6
例4 设置曲线的细节属性。 在命令行窗口中,键入下面的指令: x = -pi:pi/10:pi; y = tan(sin(x)) - sin(tan(x)); plot(x,y,'--rs','LineWidth',2,... 'MarkerEdgeColor','k',... 'MarkerFaceColor','g',... 'MarkerSize',10) 设置了曲线的线宽、Marker的填充色、边缘色等属性, 结果如图8所示。
2.4 控制绘图区域 所谓绘图区域是指图形窗体中的轴(Axes),所有
图形对象都是绘制在轴的上面,所以控制绘图的区域
也就是控制轴的显示区域。利用图形功能绘制图形时,
MATLAB自动地根据绘制的数据调整轴的显示范围,
它能够保证将所遇的数据以适当的比例显示在轴中。 用户同样可以修改轴显示的范围,而且还可以修改轴 的标注,修改这些特性需要使用axis函数,并且设置 相应的属性。