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的部分将不显示出来,从而达到对图形进行裁剪的目的。
Matlab学习笔记 绘图的更多相关文章
- Matlab学习笔记 figure函数
Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...
- matlab学习笔记 bsxfun函数
matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...
- matlab学习笔记(一)单元数组
matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x) :取最大的整数 ceil(3.18)=4,ceil( ...
- matlab学习笔记---(1)
Matlab学习笔记 一. Desktop Basics (Matlab 基础知识) 当你打开Matlab的时候,matlab按照以下默认的方式展示出来. 该桌面主要包括以下几部分内容: 当前文件夹: ...
- 【数学建模】MATLAB学习笔记——函数式文件
MATLAB学习笔记——函数式文件 引入函数式文件 说明: 函数式文件主要用于解决计算中的参数传递和函数调用的问题. 函数式的标志是它的第一行为function语句. 函数式文件可以有返回值,也可以没 ...
- matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色
一起来学matlab-matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 < ...
- matlab学习笔记9 高级绘图命令_1 图形对象_根对象,轴对象,用户控制对象,用户菜单对象
一起来学matlab-matlab学习笔记9 高级绘图命令_1 图形对象_根对象,轴对象,用户控制对象,用户菜单对象 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matl ...
- matlab学习笔记8 基本绘图命令-三维绘图
一起来学matlab-matlab学习笔记8 基本绘图命令_6 三维绘图 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 ...
- matlab学习笔记8 基本绘图命令-初级二维绘图/交互式绘图
一起来学matlab-matlab学习笔记8 基本绘图命令_5 初级二维绘图/交互式绘图 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用&g ...
随机推荐
- Kerberos与各大组件的集成
1. 概述 Kerberos可以与CDH集成,CDH里面可以管理与hdfs.yarn.hbase.yarn.kafka等相关组件的kerberos凭证.但当我们不使用CDH的时候,也需要了解hdfs. ...
- 接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?
接口可以继承接口,而且支持多重继承.抽象类可以实现(implements)接口,抽象类可继承具体类也可以继承抽象类.
- 请说说你对Hibernat的理解?JDBC和Hibernate各有什么优势和劣势?
Hibernate是一个轻量级的持久层开源框架,它是连接Java应用程序和关系数据库的中间件,负责Java对象和关系数据之间的映射.Hibernate内部对JDBC API进行了封装,负责Java对象 ...
- Jakarta Java Mail属性参数配置
前言 Jakarta Mail网址:https://eclipse-ee4j.github.io/mail SMTP协议可匹配的属性:https://eclipse-ee4j.github.io/ma ...
- C++模板学习之优先队列实现
转载:https://www.cnblogs.com/muzicangcang/p/10579250.html 今天将继续将强C++模板类的学习,同时为了巩固已经学习过的数据结构中有关优先队列的知识, ...
- 信号量,semaphore源代码之我见
信号量,Semaphore,一个限定访问线程数量的工具类,属于并发包java.util.concurrent 里面的类. Semaphore,内部提供了构造方法(包含默认的非公平信号量构造方法,已经可 ...
- 用js中的let等操作,要手动开启ECMAScript6(如果不设置,let等ES6语法会报错)
问题:idea默认没有开启ECMAScript6,需要进行设置:(如果不设置,let等ES6语法会报错)步骤: File | Settings | Languages & Frameworks ...
- 路径规划—BUG算法
- L298N双H桥集成电路板的双H桥是什么意思?为什么要叫双H桥?L298N工作原理
H桥是一个典型的直流电机控制电路,因为它的电路形状酷似字母H,故得名与"H桥".4个三极管组成H的4条垂直腿,而电机就是H中的横杠. 控制两个三极管的导通来控制电流方向,从而实现电 ...
- HTML5打造原生应用——Ionic框架简介与Ionic Hello World
试了试用Ionic框架打造了两个应用,然后在Google Play上架了. 程序语言答人 教你设计物联网 更有意思的是这是在一周的业余时间内完成的三个应用中的两个,接着让我们看看这个框架如何实现高效地 ...