专题四:MATLAB绘图
4-1二维曲线
1.plot()函数
用于绘制平面上的线型坐标曲线
plot()函数参数xy一般为长度相等的向量。
(1)plot函数
的基本用法
plot(x,y)其中x和y分别用于存储x坐标和y坐标数据。
(2)最简单的plot函数调用格式
plot(x)
· 当x为一个向量时,横坐标为x的下标,纵坐标为x向量元素的值。
· 当x为复数向量时,横坐标为实部,纵坐标为虚部。
(3)plot(x,y)
函数参数的变化形式
a. 当x是向量,y是矩阵时。
· 如果矩阵y的列数等于x的长度,则以向量x为横坐标,以y的每个行向量为纵坐标绘制曲线,曲线的条数等于y的行数。
· 如果矩阵y的行数等于x的长度,则以向量x为横坐标,以y的每个列向量为纵坐标绘制曲线,曲线的条数等于y的列数。
b. 当x,y是同型矩阵时。以x,y对应列元素为横坐标,纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
(4)含多个输入参数的plot函数
plot(x1,y1,x2,y2,...,xn,yn)
其中每一向量对构成一组数据点的横、纵坐标,绘制一条曲线。
(5)含选项的plot函数
plot(x,y,选项)
线性:“-”实线;“:”虚线;“-.”点画线;“- -”双画线。
颜色:“r”红色;“g”绿色;“b”蓝色;"w"白色;“k”黑色。
数据点标记:“*”星号;“o”圆圈;“s”方块;“p五角星”;“^”向上三角符。
2.fplot()函数
当函数随着自变量变化趋势未知,在不同区间函数频率特性差别大。plot函数无法反应函数变化特性。
(1)fplot()
函数的基本用法
fplot(f,lims,选项)
其中f代表一个函数,通常采用函数句柄的形式。
lims为x轴的取值范围,用二元向量[xmin,xmax]描述,默认值为[-5,5]。
选项定义与plot函数相同。
(2)双输入函数参数的用法
fplot(funx,funy,tlims,选项)
其中funx,funy代表函数,通常采用函数句柄的形式。
tlims为参数函数funx和funy的自变量的取值范围,用二元向量[tmin,tmax]描述。
4-2绘制图形的辅助操作
1.给图形添加标注
(1)title函数
a.title(图形标题)
标题多行时,用花括号括起来,逗号分隔。
b. 在图形标题中使用LaTeX格式控制符
“\bf”:加粗;“\it”:斜体;“rm”:正体。
\geq
大于等于,\leq
小于等于。
c. 含属性设置的title()函数。
title(图形标题,属性名,属性值)
Color属性:用于设置图形标题文本的颜色。
>>title('y=cos{\omega}t','Color','r')
FontSize属性:用于设置标题文字的字号。
>>title('y=cos{\omega}t','FontSize',24)
(2)xlabel()函数与ylabel()函数
xlabel(x轴说明)
ylabel(y轴说明)
(3)text()函数与gtext()函数
text(x,y,图形说明)
:xy为文本出现位置
gtext(图形说明)
:说明根据鼠标光标移动,点击即可放置
(4)legend()函数
legend(图例1,图例2,...)
2.坐标控制
定义坐标系,按照坐标轴范围。
(1)axis()函数
axis([xmin,xmax,ymin,ymax,zmin,zmax])
axis equal :纵横坐标轴采用等长刻度
axis square :产生正方形坐标系(默认为矩形)
axis auto :使用默认设置
axis off :取消坐标轴
axis on :显示坐标轴
(2)给坐标系加网格和边框
grid on :显示网格线
grid off :不显示网格线
grid :在两种状态中切换
box on :边框线
box off :不显示边框线
box : 在两种状态中切换
3.图形保持
hold on :控制保持原有图形
hold off :控制刷新图形窗口
hold :两种状态中切换
4.图形窗口的分割
· 子图:同一图形窗口中的不同坐标系下的图形称为子图。
· subplot()函数
subplot(m,n,p)
其中m和n指定将图形窗口分成m*n个绘图区,p指定当前活动区。m行n列,区号按行编号。
4-3其他形式的二维图形
1.其他坐标系下的二维曲线图
(1)对数坐标图
semilogx(x1,y1,选项1,x1,y2,选项2,...):使用半对数坐标,x为常用对数刻度,y仍保持线性刻度
semilogy(x1,y1,选项1,x1,y2,选项2,...):使用半对数坐标,y为常用对数刻度,x仍保持线性刻度
loglog(x1,y1,选项1,x1,y2,选项2,...):使用全对数刻度
(2)极坐标图
polar(theta,rho,选项)
其中theta为极角,rho为极径,选项内容与plot函数相同。
2.统计图
(1)条形图
bar()函数:绘制二维垂直图形。
barh()函数:绘制二维水平图形。
bar(y,style)
其中参数y是数据,选项style用于指定分组排列模式。
若y为向量,则分别以每一个元素的值作为矩形条的高度,以对应元素的下标作为横坐标。
若y为矩阵,则每一行为一组,单独为每一组绘制图形。
style默认为簇状分组:“grouped”,也可选堆积分组:“stacked”。
bar(x,y,style)
其中x存储横坐标,y存储数据。
x是一个向量,y是一个矩阵。矩阵的行数与向量的长度相等。
(2)直方图
· hist()函数:绘制直角坐标系下的直方图。
hist(y)
通常参数y是向量,将y中的最小值与最大值中间的部分等分,并统计落在每个区间元素的个数。然后以元素个数为高度绘制直方图。
hist(y,x)
其中参数y是要统计的数据,x用于指定区间的划分方式。若x是标量,则统计区间均分为x个小区间。若x是向量,则x中的每一个数指定分组的中心值。x缺省默认按10个等分。
· rose()函数:绘制极坐标系下的直方图。
rose(theta,x)
其中参数theta是一个向量。用于确定每一个区间与原点的角度,绘图时将圆划分为角度相同的扇形区域,每一个扇形的高度显示落入该区间的theta元素的个数。
选项x用于指定区间的划分方式。若x是标量,则0-2pi均匀划分为x个扇形区域。x缺省按20个等分区间。
(3)饼图
pie()函数:反应各个分量在总数中的比重。
area()函数:多个数据系列累计变化的趋势。
pie(x,ecplode)
其中参数x存储待统计数据,选项explode控制图块的显示模式。
- 通常x为向量。绘图时x的每一个元素对应一个扇形。每个扇形的角度代表在整体中所占比重。
- 与参数explode的非零值对应的部分将从饼图中分离出来。
- explode是一个与x同等大小的向量。缺省则饼图为一个整体。
(4)散点图
scatter()函数:散点图
stairs()函数:阶梯图
stem()函数:杆图
scatter(x,y,选项,'filled')
参数x,y用于定位数据点,一般为两个大小相同的向量。选项用于指定线型、颜色、数据点标记符号。标记符号默认空心,filled填充标记点。
3.矢量图形
compass()函数:罗盘图
feather()函数:羽毛图
quiver()函数:箭头图
quiver(x,y,u,v)
其中(x,y)指定矢量起点,(u,v)指定矢量终点。
(x,y)和(u,v)是同样大小的向量,或同型矩阵。若省略(x,y)则在xy平面均匀取若干个点作为起点。
4-4三维曲线
1.plot3()函数
(1)plot3()函数基本用法
plot3(x,y,z)
其中参数x,y,z组成一组曲线的坐标。x,y,z为长度相同的向量。
(2)plot3()函数参数的变化形式
plot3(x,y,z)
- 参数x,y,z是同型矩阵时。则以x,y,z对应列元素绘制曲线。曲线条数等于矩阵列数。
- 当参数x,y,z中有向量,也有矩阵时。向量的长度应与矩阵相符,行向量长度与矩阵的列数相同;列向量的长度与矩阵的行数相同。
(3)含多组输入参数的plot3()函数
绘制不同长度的多条曲线时,则采用包含若干组向量对的形式。
plot3(x1,y1,z1,x2,y2,z2,...,xn,yn,zn)
每一组x,y,z向量构成一组数据点的坐标,绘制一条曲线。n组向量绘制n条曲线。
(4)含选项的plot3()函数
plot3(x,y,z,选项)
选项用于指定曲线的线型,颜色和数据点标记。
2.fplot3()函数
如果曲线参数x,y,z用参数方程定义,且参数方程只有一个自变量。
fplot3(funx,funy,funz,tlims,选项)
其中funx,funy,funz代表定义曲线x,y,z坐标的参数,通常采用函数句柄的形式。
tlims为参数函数自变量的取值范围,用二元向量[tmin,tmax]描述,默认为[-5,5]。
选项与plot相同,颜色,线型,数据点标记。
4-5三维曲面
1.平面网格数据的生成
(1)利用矩阵运算生成
(2)利用meshgrid()函数生成
[X,Y]=meshgrid(x,y);
其中参数x,y为向量,存储网格点坐标的X,Y为矩阵。
>>x = 2:6;
>>y = (3,8)';
>>[X,Y] = meshgrid(x,y);
2.绘制三维曲面的mesh()函数和surf()函数
mesh(x,y,z,c)
用于绘制三维网格图,一般的x,y,z是同型矩阵。其中,x,y是网格坐标矩阵,z是网格点上的高度矩阵。c用于指定在不同高度下的曲面颜色。
surf(x,y,z,c)
用于绘制三维曲面图
- mesh()函数和surf()函数的其他调用格式:
mesh(z,c)
surf(z,c)
当x,y省略时,z矩阵的第2维下标当做x轴坐标,z矩阵的第1维下标当做y轴坐标。 - 带等高线的三维网格曲面函数
meshc()
- 带底座的三维网格曲面函数
meshz()
- 具有等高线的曲面函数
surfc()
- 具有光照效果的曲面函数
surfl()
3.标准三维曲面
(1)sphere()函数绘制三维球面
[x,y,z]=sphere(n)
产生3个n+1阶的方阵,绘制圆心为原点,半径为1的单位球面。若不带输出参数,则直接绘制球面。
参数n决定了球面的圆滑程度,默认为20。若n较小,则绘制多面体。
(2)cylinder()函数绘制三维柱面
[x,y,z]=sylinder(R,n)
参数R是一个向量,存放柱面各个等间隔高度上的半径,n表示 在圆柱圆周上有n个间隔点。默认为20。
若R是一个标量,则生成一个圆柱面。
(3)peaks()函数
多峰函数:
- peaks()函数调用格式:
peaks(n)
:n为标量,生成n阶方阵
peaks(V)
:参数为网格矩阵,则带入表达式,计算高度矩阵。
peaks(x,y)
:参数为向量,则带入表达式,计算高度矩阵。
peaks
不带参数,则默认为48,生成49阶方阵,
peaks函数可以作为mesh,surf的参数,绘制多峰函数曲面图。
4.fmesh()函数和fsurf()函数
如果图形由3个参数方程定义,参数方程有两个自变量。
fsurf(funx,funy,funz,uvlims)
fmesh(funx,funy,funz,uvlims)
其中,funx,funy,funz代表定义曲面x,y,z坐标的函数,通常采用函数句柄的形式。
uvlims为funx,funy,funz的自变量取值范围,用4元向量[umin,umax,vmin,vmax]描述,默认值为[-5,5,-5,5]
4-6图形修饰处理
1.视点处理
方位角 视点与原点的连线,在xy平面的投影与y轴负方向的夹角,正值表示逆时针,负值表示顺时针。
仰角 视角,视点与原点的连线,与xy平面的夹角。
(1)view()函数的基本用法
view(az,el)
其中az为方位角,el为仰角。以度°为单位,默认方位角-37.5°,仰角30°。
(2)view()函数的其他用法
view(x,y,z)
x,y,z为视点在笛卡尔坐标中的位置。
view(2)
2设置从二维平面观察图形,方位角0°,仰角90°。
view(3)
3设置从三维空间观察图形,视点使用默认。
2.色彩处理
(1)颜色的向量表示
[R G B ] :红 绿 蓝。
[0 0 1]:蓝色;[1 0 0]:红色;[0 1 0]:绿色;[1 1 1]:白色;[0 0 0]:黑色。
(2)色图(Colormap)
- 指定当前图形使用的颜色
colormap cmapname
colormap(cmap)
- 创建色图矩阵
色图矩阵的每一行是RGB三元组。可以自定义色图矩阵,也可以调用MATLAB提供的函数来定义色图矩阵
(3)三维图形表面的着色
shading facted
:将每个网格片永其高度对应的颜色,网格线是黑色。
shading flat
:将每个网格片用同一种颜色进行着色,且网格线也用对应的颜色。
shading interp
:在网格片内采用颜色插值处理。
3.裁剪处理
将图形找给你需要裁减部分对应的函数值设置为NaN,绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁减的目的。
4-7交互式绘图工具
1."绘图"选项卡
2.图形窗口绘图工具
(1)显示绘图工具
- 工具栏最右侧“显示绘图工具和停靠图形”按钮。
- 命令窗口中输入命令
>> plottools
(2)绘图工具的组成
- 图形选项板
- 绘图浏览器
- 属性编辑器
3.图形窗口菜单和工具栏
绘制二维曲线的函数:plot()
、fplot()
绘制三维曲线的函数:plot3()
、fplot3()
绘制三维曲面的函数:mesh()
、surf()
、fmesh()
、fsurf()