type
status
date
slug
summary
tags
category
icon
password
Property
图线的绘制与装饰
使用plot()
函数绘制图线
在MATLAB中,使用
plot()
函数绘制图线:各参数意义如下:
x
: 图线上点的x坐标
y
: 图线上点的y坐标
LineSpec
: 图线的线条设定,三个指定线型标记符号和颜色的设定符组成一个字符串,设定符不区分先后
绘制(0,2π)内余弦函数的图像:
装饰图线
- 使用
legend()
函数为图片增加图例
使用
legend(label1, ..., labelN)
函数可以为图片添加图例.- 使用
title()
和*label()
为图片增加标题和标签
- 使用
text()
和annotation()
为图片增加注解
控制坐标轴、边框与网格
下面的例子演示
axis
命令的效果:绘制多条图线
在一个图像上绘制多条图线
默认情况下,每次执行
plot()
函数都会清除上一次绘图的结果,多次执行plot()
只会保留最后一次绘制的图形.可以使用
hold on
和hold off
命令控制绘图区域的刷新,使得多个绘图结果同时保留在绘图区域中:在一个窗口内绘制多个图像
使用
subplot()
函数可以在一个窗口内绘制多个图像:该命令表示将当前图窗划分为
m
×n
个网格,并在第p
个网格内绘制图像.图形对象的操作
在MATLAB中,图形都是以对象的形式储存在内存中,通过获取其图形句柄可以对其进行操作.
获取图形句柄
图形句柄本质上就是一个浮点数,可以唯一确定一个图形对象.下面几个函数用于获取图形句柄
所有绘图函数也会返回图形对象的句柄.
通过图形句柄操作图形属性
使用
get()
和set()
函数可以对图形对象的属性进行访问和修改set(H,Name,Value)
v = get(h,propertyName)
下面两个例子演示使用图形句柄操作图形对象:
- 改变坐标轴属性:
- 改变线型
将图形保存到文件
使用
saveas(fig,filename)
命令可以将图形对象保存到文件中,其中fig
为图形句柄,filname
为文件名.使用
saveas()
函数将图像保存成位图时,会发生失真,要精确控制生成图片的质量,可以使用print()
函数二维图表
折线图
对数坐标系图线
对数坐标系可以加上网格,以区分线性坐标系与对数坐标系.
双y轴图线
plotyy()
的返回值为数组[ax,hlines1,hlines2]
,其中:ax
为一个向量,保存两个坐标系对象的句柄.
hlines1
和hlines2
分别为两个图线的句柄.
极坐标图线
统计图表
直方图
使用
hist()
绘制直方图,语法如下:其中:
x
表示原始数据
nbins
表示分组的个数
柱状图
- 使用
bar()
和bar3()
函数分别绘制二维和三维直方图
hist
主要用于查看变量的频率分布,而bar
主要用于查看分立的量的统计结果.
- 使用
barh()
函数可以绘制纵向排列的柱状图
- 向
bar()
传入'stack'
参数可以让柱状图以堆栈的形式画出.
饼图
使用
pie()
和pie3()
可以绘制二维和三维的饼图.向其传入一个bool向量表示每一部分扇区是否偏移.阶梯图和针状图:绘制离散数字序列
stairs()
和stem()
函数分别用来绘制阶梯图和针状图,用于表示离散数字序列.其它统计图表
-
boxplot()
-
errorbar()
绘制图形
MATLAB也可以绘制简单的图形,使用
fill()
函数可以对区域进行填充.三维图表
二维图转为三维图
在MATLAB中,所有的图都是三维图,二维图只不过是三维图的一个投影.点击图形窗口的
Rotate 3D
按钮,即可通过鼠标拖拽查看该图形的三维视图.三维图转换为二维图
使用
imagesc()
函数可以将三维图转换为二维俯视图,通过点的颜色指示高度.使用
colorbar
命令可以在生成的二维图上增加颜色与高度间对应关系的图例,使用colormap
命令可以改变配色方案三维图的绘制
绘制三维图前的准备工作:使用meshgrid()
生成二维网格
我们对一个二维网格矩阵应用函数z=f(x,y)才能得到三维图形,因此在得到三维数据之前我们应当使用
meshgrid()
函数生成二维网格矩阵.meshgrid()
函数将输入的两个向量进行相应的行扩充和列扩充以得到两个增广矩阵,对该矩阵可应用二元函数.我们得到了生成的二维网格矩阵如下:
绘制三维线
使用
plot3()
函数即可绘制三维面,输入应为三个向量.下面例子绘制了两个螺旋线:
绘制三维面
使用
mesh()
和surf()
命令可以绘制三维面,前者不会填充网格而后者会.绘制三维图形的等高线
使用
contour()
和contourf()
函数可以绘制三维图形的等高线,前者不会填充网格而后者会.向
contour()
函数传入参数或操作图形句柄可以改变图像的细节:使用
meshc()
和surfc()
函数可以在绘制三维图形时绘制其等高线.绘制三维体
使用
patch()
函数可以绘制三维体.三维图的视角与打光
调整视角
使用
view()
函数可以调整视角,view()
函数接受两个浮点型参数,分别表示两个方位角azimuth
和elevation
.调整打光
使用
light()
函数可以对三维图形进行打光,并返回光源的句柄.通过对光源的句柄进行操作可以修改光源的属性