Matlab学习笔记 绘图
1.二维曲线
(1)plot函数
①plot函数的基本用法:plot(x,y),其中x和y分别用于存储x坐标和y坐标数据。
>>x=[1,2,3];
>>y=[4,5,6];
>>plot(x,y)
②最简单的plot函数调用格式:plot(x)
当plot函数的参数x是复数向量时,则分别以该向量元素实部和虚部为横、纵坐标绘制出一条曲线。
>>x=[1,2,3];
>>y=[4,5,6];
>>cx=x+y*i;
>>plot(cx)
③plot(x,y)函数参数的变化形式
1.当x为向量,y为矩阵时,
2.若矩阵y的列(行)数等于x的长度,则以向量x为横坐标,以y的每个行(列)向量为纵坐标绘制曲线,曲线的条数等于y的行(列)数。
例:绘制sinx、sin(2x)、sin(x/2)的函数曲线
>> x=linspace(0,2*pi,100);
>> y=[sin(x);sin(2*x);sin(x/2)];
>> plot(x,y)
3.当x,y为同型矩阵时,以x、y的对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
例:绘制sinx、sin(2x)、sin(x/2)的函数曲线
>> t=0:0.01:2*pi;
>> t1=t';
>> x=[t1,t1,t1];
>> y=[sin(t1),sin(2*t1),sin(t1/2)];
>> plot(x,y)
④含多个输入函数的plot函数
plot(x1,y1,x2,y2,…,xn,yn) 其中,每一向量对构成一组数据点的横、纵坐标,绘制一条曲线。
⑤含选项的plot函数:plot(x,y,选项)
线型:“-”实线、“:”虚线、“-.”点画线、“–”:双画线
颜色:r红色、g绿色、b蓝色、w白色、k黑色
数据点标记:“*”星号、“o”圆圈、“s”方块、“p”五角星、“^”朝上三角符号
(2)fplot函数
①fplot(f,lims,选项)
其中,f代表一个函数,通常采用函数句柄的形式。Lims为x轴的取值范围,用二元向量[xmin,xmax]描述,默认值为[-5,5]。选项定义与plot函数相同。
例 绘制sin(1/x)的图形
>> fplot(@(x)sin(1./x),[0,0.2],'b')
②双输入函数参数的用法(给定函数为参数方程形式)
fplot(funx,funy,tlims,选项)
其中,funx、funy代表函数,通常采用函数句柄的形式。tlims为参数函数funx和funy的自变量取值范围,用二元向量[tmin,tmax]描述(默认[-5,5])
2.绘制图形的辅助操作:给图形添加标注、坐标控制、图形保持、图形窗口的分割*
(1)图形标注
①title(图形标题)
若标题要求两行,则要拥有一个大括号括起来,两行中间用逗号隔开。图形标题中也可使用LaTeX格式控制符,使用的地方也要用大括号括起来。
含属性设置的title函数:title(图形标题,属性名,属性值)
Color属性:用于设置标题文本的颜色
FontSize属性:用于设置标题文字的字号
②xlabel(x轴说明)
③ylabel(y轴说明)
④text(x,y,图形说明)
gtext(说明)
⑤legend(图例1,图例2,…)
顺序要与plot函数输入的一致
(2)坐标控制
①axis函数:axis([xmin,xmax,ymin,ymax,zmin,zmax])
其他用法:
axis equal:横纵坐标轴采用等长刻度
axis square:产生正方形坐标系(如不用该命令,默认为矩形)
axis auto:使用默认设置
axis off:取消坐标轴
axis on:显示坐标轴
②给坐标系加网格和边框: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指定当前活动区。
3.其他形式的二维图形
(1)其他坐标系下的二维曲线图
①对数坐标图(波特图等)
semilogx(x1,y1,选项1,x2,y2,选项2,…)
semilogy(x1,y1,选项1,x2,y2,选项2,…)
loglog(x1,y1,选项1,x2,y2,选项2,…)
②极坐标图:polar(theta,rho,选项)
其中,theta为极角,rho为极径,选项的内容与plot函数相同。
(2)统计图
①条形图:bar函数(垂直条形图)和barh函数(水平条形图)
bar(y,style),参数y是数据,选项style用于指定分组排列模式(“grouped”,簇状分组;“stacked”,堆积分组)
bar(x,y,style),其中x存储横坐标,y存储数据
②直方图:hist函数(直角坐标系下)和rose函数(极坐标系下)
hist(y) hist(y,x)
其中,参数y是要统计的数据,x用于指定区间的划分方式。
rose(theta,x),其中,参数theta用于确定每一区间与原点的角度,选项x用于指定区间的划分方式。
③扇形图(饼图):pie函数
pie(x,explode),其中,参数x存储待统计数据,选项explode控制图块的显示模式(与explode非零值对应的部分将从饼图中分离出来)。
④面积图:area函数,与plot函数用法相同,只是将所得曲线的下方填充颜色。
⑤散点类图形:
散点图,scatter函数;阶梯图stairs函数;杆图,stem函数
scatter函数,scatter(x,y,选项,’filled’),参数x,y用于定位数据点,选项用于指定线型、颜色、数据点标记(数据点标记若为封闭图形,可用’filled’指令填充,否则默认为空心)。
⑥矢量类图形:compass函数,罗盘图;feather函数,羽毛图;quiver函数,箭头图
quiver(x,y,u,v),其中,(x,y)指定矢量起点,(u,v)指定矢量终点。
4.三维曲线
(1)plot3函数
①plot3(x,y,z),其中,参数x,y,z组成一组曲线的坐标
②函数参数变化形式plot3(x,y,z)
当x,y,z是同型矩阵时,则以对应列元素绘制曲线,曲线条数等于矩阵列数;当x,y,z中有向量也有矩阵时,行向量的长度与矩阵的列数相同,或列向量的长度与矩阵的行数相同
③含多组输入参数的plot3函数:
plot3(x1,y1,z1,x2,y2,z2,…,xn,yn,zn),每组x,y,z向量构成一组数据点的坐标,绘制一条曲线。
④含选项的plot3函数:plot3(x,y,z,选项)
选项用于指定曲线的线型、颜色和数据点标记
(2)fplot3函数:fplot3(funx,funy,funz,tlims)能用参数方程表示且只有一个自变量时
其中,funx、funy、funz代表定义曲线x、y、z坐标的函数,通常采用函数句柄的形式。tilms为参数函数自变量的取值范围,用二元向量[tmin,tmax]描述,默认为[-5,5]。
在fplot3函数中,也可以指定曲线的线型、颜色和数据点标记,在后面加上选项即可。
(1)平面网格数据的生成
①利用矩阵运算生成
②利用meshgrid(x,y)函数生成
[X,Y]=meshgrid(x,y),其中,参数x、y为向量,存储网格点坐标的X、Y为矩阵。
//>>x=2:6;
//>>y=(3:8)’;
//>>[X,Y]=meshgrid(x,y);
(2)绘制三维曲面的函数(绘制之前要先生成平面网格)
mesh(x,y,z,c) surf(x,y,z,c)
其中,x、y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的曲面颜色。
mesh函数和surf函数还可以这样调用:mesh(z,c)、surf(z,c)
当x、y省略时,z矩阵的第2维下标当作x轴坐标,第1维当作y轴坐标。
带等高线的三维网格曲面函数meshc,带底座的三维网格曲面函数meshz,具有等高线的曲面函数surfc,具有光照效果的曲面函数surfl
(3)标准三维曲面
①sphere函数:[x,y,z]=sphere(n)
绘制三维球面,n决定了球面的圆滑程度(默认为20),n较小则绘制出多面体表面图
②cylinder函数:[x,y,z]=cylinder(R,n)
绘制三维柱面,R是一个向量,存放柱面在各个高度的半径,n表示在圆柱圆周上有n个间隔点(默认20)
③peaks函数:
④fsurf函数和fmesh函数
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]。
6.图形修饰处理:视点处理、色彩处理、裁剪处理
(1)视点处理:方位角(正值表示逆时针)和仰角(正值表示x轴上方)
②view函数的其他用法:view(x,y,z)(视点在笛卡尔坐标中的位置) view(2)(二维平面观察,方位角为0度,仰角为90度) view(3)(从三维空间观察,方位角和仰角为默认)
(2)色彩处理
①颜色的向量表示 [R G B]
[0 0 1]:蓝色 [1 0 0]:红色 [0 1 0]:绿色 [1 1 1]:白色 [0 0 0]:黑色
②色图:色图矩阵、内建色图(冷暖、四季、灰度色图)
指定当前图形使用的色图:colormap cmapname
colormap(cmap)
创建色图矩阵:色图矩阵的每一行是RGB三元组。可以自定义色图矩阵,也可以调用MATLAB提供的函数来定义色图矩阵。
③三维图形表面的着色
shading faceted:将每个网格片用其高度对应的颜色进行着色,网格线是黑色。
Shading flat:将每个网格片用同一个颜色进行着色,网格线也用相应的颜色。
shading interp:在网格片内采用颜色插值处理。
(3)图形的裁剪处理:
将图形中需要裁剪部分对应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的。