MATLAB学习笔记4 MATLAB绘图
文章目录
4.1 二维曲线
plot函数
-
plot函数的基本用法
plot(x,y):x,y分别用于存储x坐标和y坐标
-
最简单的plot函数调用格式
plot(x):以x的下标和x的值构造曲线
如果plot函数的参数x为复数时,则分别以该向量元素的实部和虚部为横、纵坐标绘制出一条曲线
-
plot(x,y)函数参数的变化形式
-
当x是向量,y是矩阵时
如果矩阵y的列数等于x的长度,则以向量x为横坐标,以y的每个行向量为纵坐标绘制图线,曲线的条数等于y的行数
如果矩阵y的行数等于x的长度,则以向量x为横坐标,以y的每个列向量为纵坐标绘制图线,曲线的条数等于y的列数
-
当x、y为同型矩阵时
以x、y对应的列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数
-
-
含多个输入参数的plot函数
plot(x1,y1,x2,y2,…,xn,yn) 其中每一向量对构成一组数据点的横、纵坐标,绘制一条曲线
-
含选项的plot函数
plot(x,y,选项)
- 线型 “-”:实线 “:”:虚线 “-.”:点画线 “–”:双画线
- 颜色 “r”:红色 “g”:绿色 “b”:蓝色 “w”: 白色 “k”: 黑色
- 数据点标记 “*”:星号 “o”:圆圈 “s”:方块 “p”: 五角星 “^”: 朝上三角符号
fplot函数
-
fplot函数的基本用法
fplot(f,lims,选项) %lim为函数x轴的取值范围
-
双输入函数参数的用法
fplot(funx,funy,tlims,选项)
4.2 绘制图形的辅助操作
图形标注
-
title(图形标题)
-
title函数的基本用法
title(图形标题)
-
在图形标题中使用LaTeX格式控制符
title('y=cos{\omega}t')
-
含属性设置的title函数
title(图形标题,属性名,属性值)
>> title('y=cos{\omega}t','Color','r'); %设置图形标题文本的颜色 >> title('y=cos{\omega}t','FontSize','24'); %设置标题文字的字号,如果省略默认为11
-
-
xlabel(x轴说明)
-
ylable(y轴说明)
-
text(x,y,图形说明)
>> text(-2*pi,0,'-2{\pi}') >> text(3,0.28,'\leftarrow sin(X)') >> gtext('-2{\pi}') %不含坐标参数,直接放置于鼠标光标处
-
legend(图例1,图例2,…)
坐标控制
-
axis函数
>> axis([xmin,xmax,ymin,ymax,zmin,zmax]); >> axis equal; %纵、横坐标轴采用等长刻度 >> axis spuare; %产生正方形坐标系 >> axis auto; %使用默认设置 >> axis off; %取消坐标轴 >> axis on; %显示坐标轴
-
给坐标系加网格和边框
>> grid on %显示网格线 >> grid off %关闭网格线 >> grid %在两种状态之间切换 >> box on %给坐标系加边框 >> box off %关闭边框 >> box %切换状态
图形保持
hold on;
图形窗口的分割
- 子图:同一图形窗口中的不同坐标系下的图形称为子图
- subplot(m,n,p):其中,m,n指定将图形窗口分成mxn个绘图区,p指定当前活动区
4.3 其他形式的二维图形
对数坐标图
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函数相同
统计图
-
条形类图形
-
bar函数(条形图)
bar(y,style):参数y是数据,选项style用于指定分组排列模式
bar(x,y,style):x储存横坐标,y储存数据
style: “grouped”: 簇状分组(默认) “stacked”:堆积分组
-
hist函数(直方图)
hist(y) hist(y,x):参数y是要统计的数据,x用于指定区间的划分方式(默认10)
-
rose函数(直方图)
rose(theta,x):参数theta同于确定每一区间与原点的角度,选项x用于指定区间的划分方式(默认20)
-
-
面积类图形
-
pie函数(扇形图)
pie(x,explode):参数x存储待统计数据,选项explode控制图块的显示模式
-
area函数(面积图)
-
-
散点类图形
-
scatter函数(散点图)
scatter(x,y,选项,‘filled’):参数x、y用于定位数据点,选项用于指定线型、颜色、数据点标记
-
stairs函数(阶梯图)
-
stem函数(杆图)
-
-
矢量类图形
-
compass函数(罗盘图)
-
feather函数(羽毛图)
-
quiver函数(箭头图)
quiver(x,y,u,v):(x,y)指定矢量起点,(u,v)指定矢量终点
-
4.4 三维曲线
plot3函数
-
基本用法
plot3(x,y,z)
-
函数参数的变化形式
-
参数x、y、z是同型矩阵
以x、y、z对应列元素绘制曲线
-
参数x、y、z中有向量,也有矩阵
向量长度应与矩阵相符(列向量的长度与矩阵的行数相同)
-
-
含多组输入参数plot3函数
plot3(x1,y1,z1,x2,y2,z2,…,xn,yn,zn)
-
含选项的plot3函数
plot3(x,y,z,选项)
选项用于指定曲线的线型、颜色和数据点标记
fplot3函数
fplot3(funx,funy,funz.tlims)
其中,funx、funy、funz代表定义曲线x、y、z坐标的函数,通常采用函数句柄的形式。tlims为参数函数自定义变量的取值范围,用二元向量[tlim,tmax]描述,默认为[-5,5]
4.5 三维曲面
平面网格数据的生成
-
利用矩阵运算生成
>> x=2:6; >> y=(3:8)'; >> X=ones(size(y))*x; >> Y=y*ones(size(x));
-
利用meshgrid函数生成
[X,Y]=meshgrid(x,y)
其中,参数x、y为向量,存储网格点的坐标X、Y为矩阵
>> x=2.6; >> y=(3:8)'; >> [X,Y]=meshgrid(x,y);
绘制三维曲面
-
mesh(x,y,z,c)和surf(x,y,z,c)
x、y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的曲面颜色
-
其他调用格式
mesh(z,c)
surf(z,c)
当x、y省略时,z矩阵的第二维下标当作x轴坐标,z矩阵的第一维下标当作y轴坐标
-
其他函数
- 带等高线的三维网格曲面函数meshc
- 带底座的三维网格曲面函数meshz
- 具有等高线的曲面函数surfc
- 具有光照效果的曲面函数surfl
标准三维曲面
-
sphere函数
[x,y,z]=sphere(n)
-
cylinder函数
[x,y,z]=cylinder(R,n)
-
peaks函数
peaks(n) peak(V) peaks(x,y) peaks
-
fsurf函数和fmesh函数
fsurf(funx,funy,funz,uvlims)
fmesh(funx,funy,funz,uvlims)
其中funx,funy,funz代表定义曲面x、y、z坐标的函数,通常采用函数句柄的形式。uvlims为funx、funy、funz的自变量的取值范围,用四元向量[umin,umax,vmin,vmax]描述,默认为[-5,5,-5,5]
4.6 图形修饰处理
视点处理
- 方位角
- 仰角
-
view函数的基本用法
view(az,el)
其中,az为方位角,el为仰角
-
view函数的其他用法
view(x,y,z):视点在笛卡尔坐标系中的位置
view(2):设置从二维平面观察图形(az=0°,el=90°)
view(3):设置从三维空间观察图形(az,el默认值)
色彩处理
-
颜色的向量表示
[R G B]:[0 0 1](蓝色) [1 0 0](红色) [0 1 0](绿色) [1 1 1](白色) [0 0 0](黑色)
-
色图
-
色图矩阵
-
内建矩阵
>> surf(peaks) >> colormap hot
-
-
三维图形表面的着色
shading faceted:将每个网格片用其高度对应的颜色进行着色,网格线是黑色
shading flat:将每个网格片用同一个颜色进行着色,且网格线也用相应的颜色
shading interp:在网格片内采用颜色插值处理
图形的裁剪处理
将图形中需要裁剪的部分对应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的
-
色图
-
色图矩阵
-
内建矩阵
>> surf(peaks) >> colormap hot
-
-
三维图形表面的着色
shading faceted:将每个网格片用其高度对应的颜色进行着色,网格线是黑色
shading flat:将每个网格片用同一个颜色进行着色,且网格线也用相应的颜色
shading interp:在网格片内采用颜色插值处理
图形的裁剪处理
将图形中需要裁剪的部分对应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的