matlab画图技巧方法
MATLAB作图教程
![MATLAB作图教程](https://img.taocdn.com/s3/m/9cfe43f281c758f5f61f6746.png)
2
Matlab 绘图
如何画出 y=sin(x) 在 [0, 2*pi] 上的图像?
3
Matlab 绘图
手工作图
找点: x=0, pi/3, pi/2, 2*pi/3, pi, … 计算函数值: y=sin(0), sin(pi/3), sin(pi/2), 描点:在坐标系中画出这些离散点
…
19
以下标为横坐标,元素值为纵坐标,等价于:
x=[1:length(y)];plot(x,y);
例:>> y=[0,0.48,0.84,1,0.91,6.14];
>> plot(y); >> figure(2); plot([1:length(y)], y)
自己动手
plot(Y): 当 Y 是矩阵时的图形是什么? >> Y=[1 2; 3 5; 6 9]; plot(Y); >> plot(Y’);
25
图形的其他属性
图形标注与坐标控制 有关图形标注函数的调用格式为: title(图形名称) xlabel(x轴说明) ylabel(y轴说明) text(x,y,图形说明) legend(图例1,图例2,…)
26
图形的其他属性ຫໍສະໝຸດ 标题 title(’text’)
例
可以指定文本的属性 title('text', 'Property1', value1, ' Property2', value2, ...)
自己动手
在0≤x≤2区间内,绘制曲线
y=2e-0.5x cos(4πx)
14
【例】在0≤x≤2区间内,绘制曲线
y=2e-0.5x cos(4πx)
matalb画图教程
![matalb画图教程](https://img.taocdn.com/s3/m/15a6b016866fb84ae45c8dd1.png)
第七次课Matlab图形与可视化一、本次课学习要点1、Matlab曲线绘图命令(二维、三维)2、绘图程序的编写二、本次课教学重点绘图程序的编写三、教学基本内容MATLAB具有很强的绘图功能,可以绘制多种二维、三维图形,也可以进行动画演示。
这一章将详细介绍各种图形的绘制命令。
1、二维绘图的plot命令MATLAB最常用的二维绘图命令是plot命令。
该命令将各个数据点用直线连接来绘制图形。
MATLAB的其它二维绘图命令中的绝大多数是以plot为基础构造的。
x=0:0.01:2; % 图形的横坐标数据准备y=sin(2*pi*x); % 图形的纵坐标数据准备plot(x,y); % 绘制图形grid %带栅格%plot(x,y,'k:o') %'k'表示黑色,':' 表示点连线,'o '表示圆圈显示为:plot 指令的调用格式:plot(x1.y1,'参数1’,x2,y2,‘参数2’....)plot可以用同一命令在同一坐标系中画多幅图形,x1,yl为第一条曲线 x,y个轴的坐标值,参数1为第一条曲线的选项参数,x2,y2为第二条曲线x,y轴的坐标值,参数2为第二条曲线的参数。
参数选项为一个字符串,它决定了二维图形的颜色、线型及数据点的图标。
B(蓝色) C(青色) G(绿色) k(黑色) r(红色) w(白色) y(黄色)2、图形修饰与控制(1)坐标轴的调整MATALB用axis命令对绘制的图形的坐标轴进行调整。
axis命令的功能非常丰富,可用它来控制轴的比例和特性。
axis([xmin xmax ymin ymax)将图形的 x轴范围限定在[xmin,xmax]之间,y轴的范围限定在[ymin,ymax]之间。
MATLAB绘制图形时,按照给定的数据值确定坐标轴参数范围。
对坐标轴范围参数的修改,也就相当于对原图形进行放大或缩小处理。
Matlab绘制图像
![Matlab绘制图像](https://img.taocdn.com/s3/m/fc547d23ccbff121dd3683ff.png)
第一种方法 在Workspace中绘制
绘图基本线型和颜色
符号 y m c r g b w k 颜色 黄色 紫红 青色 红色 绿色 蓝色 白色 黑色 符号 . 。 x + * : -. -线型 点 圆圈 x 标记 加号 星号 实线 点线 点划线 虚线
绘图命令
绘图命令plot 主要是在数值计算中绘制函数图像。 绘制反函数图像非常容易。
绘图命令plot
调用格式1:plot(x,y)
1. 首先定义自变量X的取值向量(横坐标) 2. 再定义函数Y的取值向量(纵坐标) 3. 用plot(x,y)命令给出平面曲线图。 在绘图参数中可以给出绘制图形的线型和颜 色的参数。例:plot(x,y,’r*’) 就是用红色的 ****线型绘图。
技巧
x=0:0.1:2*pi; y1=sin(x); y2=exp(-x); plot(x,y1,'--*',x,y2,':o'); xlabel('t=0 to 2\pi'); ylabel('value of sin(t) and e^{-x}') title('Function sin(t) and e^{-x}'); legend('sin(t)','e^{-x}') 后期的制作
ቤተ መጻሕፍቲ ባይዱ
绘出下面函数及其反函数的图像
1 1 y (x ) 2 x (1 x )
程序如下: x=1:0.001:5; %定义横坐标 y=1/2*(x+1./x); %定义纵坐标 plot(x,y,'r',y,x,'b') %红色画f(x) 蓝色画f(y).
Matlab绘图
![Matlab绘图](https://img.taocdn.com/s3/m/5724f90276c66137ee0619e1.png)
第二章绘图要画一个函数的图像,先是选取一堆x,求出相对应的y值,然后按照数值描点,接着用光滑的曲线把点连接起来。
和数学课讲的一样,在matlab中,我们画图也分为三步1. 建立一个x的点集;2. 根据函数关系式算出每个x对应y的点集;3. 将这些点用平滑的曲线连接起来。
例如要画y=sinx在[0,10]区间内的图像,首先我们要确定出x的区间>>x = [0:0.1:10];命令的意思是,产生一个数集,它从0开始,每次加0.1,一直加到10为止注意,命令后面的分号记得加上,否则matlab会把x的元素都打印出来,下面就是不加分号的后果:有了x的数集后,我们再根据函数关系式y=sinx得出y的点集>>y = sin(x);同样的,别忘了把分号加上抑制程序输出y的具体值,以及sin(x)的括号别忘了加到这里,我们已经把x和y确定下来,接下来只需用plot(x,y)命令即可绘制出图像>>plot(x,y)当然,如果你不定义y,而直接用一下嵌套命令也是可以的>>plot(x,sin(x))我们将x的增量变大一点,改为0到10,每次增幅为1,即>>x = [0:1:10];然后我们输入>>plot(x,y)我们会得到错误信息:原因是之前我们定义的y是由之前的x决定的,当x改变后,y依然没有改变,为了解决这个问题,我们要把y重新定义一遍,即命令要完整再输入一遍>>x = [0:1:10];>>y = sin(x);>>plot(x,y)然后程序会绘制出和我们预期相同的图像没错,我们将看到不光滑的曲线,这告诉我们,当使用plot(x,y)画图的时候x的增加幅度尽可能小一些,画出的图像才精确(跟数学里点越多图像越精确原理一样的)为了美化图像(有时是为了更清楚的辨析图像),我们经常要为图像加上网格,为坐标轴命名,改变曲线的颜色、形状这些命令2.1 加上网格我们使用grid on 命令我们这样书写:>>x=[0:0.1:10];y=sin(x);>>plot(x,y),grid on这样就画出了带网格的图像当然,也可以先画出没有网格的图像,再把窗口切回matlab命令输入窗口,输入grid on,这样图像就会加上网格,即>>x=[0:0.1:10];y=sin(x);>>plot(x,y)>>grid on2.2 为坐标轴命名为x坐标轴命名的命令是xlabel(),显然,y的就应该是ylabel()比如这里,我想让x命名为x,y命名为sinx,则如下输入:>>x=[0:0.1:10];y=sin(x);>>plot(x,y),xlabel(‘x’),ylabel(‘sinx’)注意,坐标轴的名字要用引号括起来,表示字符串当然也可以画图后再标坐标轴,即:>>x=[0:0.1:10];y=sin(x);>>plot(x,y)>>xlabel(‘x’)>>ylabel(‘sinx’)然后我们就可以看到坐标轴带命名的图像:2.3 绘制多条曲线绘制多条曲线有两种情况,一种是在同一个坐标面内画多条曲线,另一种是在一个面内画多个独立的曲线我们先讲第一种,假设我们要在一个坐标面内画sinx,cosx,tanx的图像先定义x,y>>x=[0:0.1:10]>>y1=sin(x);>>y2=cos(x);>>y3=tan(x);接着画图>>plot(x,y1)这时候函数绘制出了sinx的图像接着我们继续画>>plot(x,y2)我们会发现程序会把之前的sinx图像抹掉,然后绘制cosx的图像为了让他们同时存在,我们使用hold on命令,即画完一个图后,hold on,继续画当我们再加上tanx后会得到这个图像这是因为函数显示区间设置的原因,后面讲2.4 更改图像显示区间从楼上我们已经在一个图中画出了sinx、cosx、tanx的图像,但是我们知道tanx的值域是负无穷到正无穷,而sin,cos的值域是-1到1,这导致了我们基本上看不到sin,cos的图像,为了解决这个问题,我们只需用axis命令即可,命令格式为axis([xmin xmax ymin ymax])即括号内跟一个区间,四个数字分别是x的起点,x的终点,y的起点,y的终点。
MATLAB画图——基础篇
![MATLAB画图——基础篇](https://img.taocdn.com/s3/m/cbca004d302b3169a45177232f60ddccda38e67f.png)
MATLAB画图——基础篇MATLAB画图——基础篇在MATLAB使⽤的过程中,学会画图是⼀项必要的技能。
在这⾥,我总结了部分简单的画图函数,同时附上代码(本⽂中的程序为了⽅便给出的数据都很简单,⼤家可以⾃⼰去尝试其他数据)。
这对刚刚开始接触MATLAB的⼩⽩来说,我认为还是很有帮助的。
⽂章⽬录⼀、plot()函数1.⼆维图形(1)绘图选项线型颜⾊标记符号-实线b蓝⾊.点s⽅块:虚线g绿⾊o圆圈d菱形.-点划线r红⾊x叉v朝下三⾓符号-双划线c青⾊+加号^朝上三⾓符号m品红*星号<朝左三⾓符号y黄⾊>朝右三⾓符号p五⾓星k⿊⾊h六⾓星w⽩⾊(2)图形的辅助标注和窗⼝的分割title(图形说明)xlabel(x轴说明)ylabel(y轴说明)text(x,y图形说明)——在x,y轴处添加⽂字说明legend(图例⼀,图例⼆,…)subplot(m,n,p)——将绘图区域分割成m*n个⼦区域,并按照⾏从左⾄ 右,从上⾄下依次编号。
p表⽰第p个绘图⼦区域。
注意:如果是要两个图画到同⼀个坐标⾥⾯,则在两个plot函数之间添加⼀⾏hold on(3)格式plot(x)——缺省⾃变量绘图格式plot(x,y)——基本格式。
以y(x)的函数关系作图。
如果y是n*m的矩 阵,则x为⾃变量,作出m条曲线。
plot(x1,y1,x2,y2,…,xn,yn)——多条曲线绘图格式plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)——含选项的绘图格式x1=[1 2 3 4 5 6 7 8 9];x2=[2 4 6 8 10 12 14 16 18];y1=[1 4 9 16 25 36 49 64 81];y2=[18 16 14 12 10 8 6 4 2];subplot(4,1,1);plot(x1);title('例⼀');xlabel('⾃变量');ylabel('因变量');subplot(4,1,2);plot(x1,y1);title('例⼆');xlabel('⾃变量');ylabel('因变量');subplot(4,1,3);plot(x1,y1,x2,y2);title('例三');xlabel('⾃变量');ylabel('因变量');subplot(4,1,4);plot(x1,y1,'m+',x2,y2,'c*');title('例四');xlabel('⾃变量');ylabel('因变量');2.三维图形(1)格式plot3(x1,y1,z1,‘选项⼀’,x2,y2,z1,‘选项⼆’,…)x,y,z是长度相同的向量:⼀条曲线x,y,z是维度相同的矩阵:多条曲线(2)⽹格矩阵⽣成函数:meshgrid[X,Y]=meshgrid(x,y)x,y是给定的向量,X,Y是⽹格划分后得到的⽹格矩阵注意,这个函数⽤来⽣成⽹格矩阵,不是直接⽤来画图的,配合mesh使⽤。
Matlab3 画图
![Matlab3 画图](https://img.taocdn.com/s3/m/6a06d46da26925c52cc5bfcc.png)
\leftritharrow ↔
3.7 二维作图的附加类型
附加的二维作图类型 函数 描述 bar(x,y) 创建一个水平的条形图,x代表第 一个X轴的取值,y代表对应于Y的 取值 barh(x,y) 创建一个竖直的条形图 pie(x) 创建一个饼状图,x代表占总数的 pie(x,explode) 百分数
柱状图
• 在一系列数值中范围被平均划分,并确定某一个范围中数值 的个数,并把这个数目通过函数画出图来。 • 格式:hist (y)、hist(y, nbins)、hist(y, x) • 例:y = randn(10000,1); hist(y,15) • 例:y = randi(10,[10000,1]); hist(y,1:10) • 重做练习6 n=10^5; a=vpa('pi',n); a=char(a); a(2)=[]; b=arrayfun(@str2num,a); figure; hist(b,0:9); count2=hist(b,0:9)
n=10^5; a=vpa('pi',n); % pi,sqrt(2),exp(1).... a=char(a); % 将符号转化成字符串 count=zeros(1,10); % 预分配内存
format 结果 string %d 把值作为整数来处理 %e %f %g \n 用科学记数法来显示数据 用于浮点数格式显示这个数 用科学记数格式,或浮点数格式,根据那 个短,并显示之 转到新的一行
用legend来制作 图例
• 基本形式: legend('string1','string2',...,pos) • 其中string1,string2等等是轨迹标签名,而pos是 一个整数,用来指定图例的位置。 x=0:pi/100:2*pi; y1=sin(2*x); y2=2*cos(2*x); plot(x,y1,'k-',x,y2,'b--'); title(' Plot of f(x)=sin(2x) and its derivative'); legend('f(x)','d/dx f(x)');
Matlab中使用Plot函数动态画图方法总结
![Matlab中使用Plot函数动态画图方法总结](https://img.taocdn.com/s3/m/796abf7f5acfa1c7aa00cc20.png)
Matlab中使用Plot函数动态画图方法总结Matlab除了强大的矩阵运算,仿真分析外,绘图功能也是相当的强大,静态画图没什么问题,由于Matlab本身的多线程编程缺陷,想要动态的画图,并且能够很好的在GUI中得到控制,还不是一件很容易的事情,下面总结几种方法。
一. AXIS 移动坐标系这种方法是最简单的一种方法,适合于数据已经全部生成的场合,先画图,然后移动坐标轴。
实例代码如下:%%%先画好,然后更改坐标系%在命令行中使用Ctrl+C 结束t=0:0.1:100*pi;m=sin(t);plot(t,m);x=-2*pi;axis([x,x+4*pi,-2,2]);grid onwhile 1if x>max(t)break;endx=x+0.1;axis([x,x+4*pi,-2,2]); %移动坐标系pause(0.1);end二. Hold On 模式此种方法比较原始,适合于即时数据,原理是先画上一帧,接着保留原始图像,追加下一幀图像,此种方式比较繁琐,涉及画图细节,并且没有完整并连续的Line对象数据。
例如:%%% Hold On 法% 此种方法只能点,或者分段划线hold offt=0;m=0;t1=[0 0.1]; %要构成序列m1=[sin(t1);cos(t1)];p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5);x=-1.5*pi;grid on;for i=1:100hold ont=0.1*i; %下一个点m=t-floor(t);t1=t1+0.1; %下一段线(组)m1=[sin(t1);cos(t1)];p = plot(t,m,'*',t1,m1(1,:),'-r',t1,m1(2,:),'-b','MarkerSize',5);x=x+0.1;axis([x x+2*pi -1.5 1.5]);pause(0.01);end三. Plot 背景擦除模式这种模式比较适合画动画,效率比较高,刷新闪烁小,适合即时数据,最终的Line结构数据完整。
MATLAB作图(超详细)
![MATLAB作图(超详细)](https://img.taocdn.com/s3/m/2de44af09b6648d7c1c746cd.png)
2020/5/31
数学建模
3. 对数坐标图
在很多工程问题中,通过对数据进行对数转换可以 更清晰地看出数据的某些特征,在对数坐标系中描绘数 据点的曲线,可以直接地表现对数转换.对数转换有双对 数坐标转换和单轴对数坐标转换两种.用loglog函数 可以实现双对数坐标转换,用semilogx和semilogy 函数可以实现单轴对数坐标转换. loglog(Y) 表示 x、y坐标都是对数坐标系
单击鼠标左键,则在当前图形窗口中,以鼠标点中的点为 中心的图形放大2倍;单击鼠标右键,则缩小2倍.
zoom off 关闭缩放模式
grid on
%标注格栅
MATLAB liti37
例 创建一个简单的半对数坐标图. 解 输入命令:
x=0:.1:10;
semilogy(x,10.^x)
MATLAB liti38
例 绘制y=x3的函数图、对数坐标图、半对数坐标图.
2020/5/31
MATLAB liti22 数学建模
返回
三维图形 1. 空间曲线 2. 空间曲面
semilogx(Y) 表示 x坐标轴是对数坐标系
semilogy(…) 表示y坐标轴是对数坐标系
plotyy 有两个y坐标轴,一个在左边,一个在右边
2020/5/31
数学建模
例 用方形标记创建一个简单的loglog.
解 输入命令:
x=logspace(-1,2);
loglog(x,exp(x),’-s’)
数学建模
返回
2. 定制坐标 Axis([xmin xmax ymin ymax zmin zmax])定制图形坐标
x、y、z的最大、最小值
Axis
将坐标轴返回到自动缺省值
怎样用Matlab绘图
![怎样用Matlab绘图](https://img.taocdn.com/s3/m/924a0c110b4e767f5acfce0b.png)
help plothelp axisa1=plot();hlod ona2=plot();legend([a1 a2],'图1 名',‘图2 名')hold offx1=-pi:pi/12:pi;x2=-pi:pi/12:pi;y1=sin(x1);y2=cos(x2);plot(x1,y1,x2,y2);axis([-2*pi 2*pi -2 2]);xlabel('x');ylabel('y');title('sin(x) & cos(x)');MATLAB受到控制界广泛接受的一个重要原因是因为它提供了方便的绘图功能.这里主要介绍2 维图形对象的生成函数及图形控制函数的使用方法,还将简单地介绍一些图形的修饰与标注函数及操作和控制MATLAB 各种图形对象的方法.第一节图形窗口与坐标系一.图形窗口1.MATLAB 在图形窗口中绘制或输出图形,因此图形窗口就像一张绘图纸.2.在MATLAB 下,每一个图形窗口有唯一的一个序号h,称为该图形窗口的句柄.MATLAB 通过管理图形窗口的句柄来管理图形窗口;3.当前窗口句柄可以由MATLAB 函数gcf 获得;4. 在任何时刻, 只有唯一的一个窗口是当前的图形窗口( 活跃窗口);figure(h)----将句柄为h 的窗口设置为当前窗口;5.打开图形窗口的方法有三种:1)调用绘图函数时自动打开;2)用File---New---Figure 新建;3)figure 命令打开,close 命令关闭.在运行绘图程序前若已打开图形窗口,则绘图函数不再打开,而直接利用已打开的图形窗口;若运行程序前已存在多个图形窗口,并且没有指定哪个窗口为当前窗口时,则以最后使用过的窗口为当前窗口输出图形.6.窗口中的图形打印:用图形窗口的File 菜单中的Print 项.7.可以在图形窗口中设置图形对象的参数.具体方法是在图形窗口的Edit 菜单中选择Properties 项,打开图形对象的参数设置窗口,可以设置对象的属性.二.坐标系1.一个图形必须有其定位系统,即坐标系;2.在一个图形窗口中可以有多个坐标系,但只有一个当前的坐标系;3.每个坐标系都有唯一的标识符,即句柄值;4.当前坐标系句柄可以由MATLAB 函数gca 获得;5.使某个句柄标识的坐标系成为当前坐标系,可用如下函数:axes(h) h 为指定坐标系句柄值.6.一些有关坐标轴的函数:1)定义坐标范围:一般MATLAB 自动定义坐标范围,如用户认为设定的不合适,可用:axis([Xmin, Xmax, Ymin, Ymax])重新设定;2)坐标轴控制:MATLAB 的缺省方式是在绘图时,将所在的坐标系也画出来,为隐去坐标系,可用axis off;axis on 则显示坐标轴(缺省值).3)通常MATLAB 的坐标系是长方形,长宽比例大约是4:3,为了得到一个正方形的坐标系可用:axis square4)坐标系横纵轴的比例是自动设置的,比例可能不一样,要得到相同比例的坐标系,可用:axis equal第二节二维图形的绘制一. plot 函数plot 函数是最基本的绘图函数,其基本的调用格式为:1.plot(y)------绘制向量y 对应于其元素序数的二维曲线图,如果y 为复数向量,则绘制虚部对于实部的二维曲线图.例:绘制单矢量曲线图.y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20];plot(y)由于y 矢量有10 个元素,x 坐标自动定义为[1 2 3 4 5 6 7 8 9 10].2.plot(x,y)------绘制由x,y 所确定的曲线.1)x,y 是两组向量,且它们的长度相等,则plot(x,y)可以直观地绘出以x 为横坐标,y 为纵坐标的图形.如:画正弦曲线:t=0:0.1:2*pi;y=sin(t);plot(t,y)2)当plot(x,y)中,x 是向量,y 是矩阵时,则绘制y 矩阵中各行或列对应于向量x的曲线.如果y 阵中行的长度与x 向量的长度相同,则以y 的行数据作为一组绘图数据;如果y 阵中列的长度与x 向量的长度相同,则以y 的列数据作为一组绘图数据;如果y 阵中行,列均与x 向量的长度相同,则以y 的每列数据作为一组绘图数据.例:下面的程序可同时绘出三条曲线.MATLAB 在绘制多条曲线时,会按照一定的规律自动变化每条曲线的的颜色.x=0:pi/50:2*pi;y(1,:)=sin(x);y(2,:)=0.6*sin(x);y(2,:)=0.3*sin(x);plot(x,y)或者还可以这样用:x=0:pi/50:2*pi;y=[ sin(x); 0.6*sin(x); 0.3*sin(x)];plot(x,y)3) 如果x,y 是同样大小的矩阵,则plot(x,y)绘出y 中各列相应于x 中各列的图形.例:x(1,:)=0:pi/50:2*pi;x(2,:)=pi/4:pi/50:2*pi+pi/4;x(3,:)=pi/2:pi/50:2*pi+pi/2;y(1,:)=sin(x(1,:));y(2,:)=0.6*sin(x(2,:));y(3,:)=0.3*sin(x(3,:));plot(x,y)x=x';y=y';figureplot(x,y)在这个例子中,x------3x101,y------3x101,所以第一个plot 按列画出101 条曲线,每条3 个点;而x'------101x3,y'------101x3,所以第二个plot 按列画出3 条曲线,每条101 个点.3.多组变量绘图:plot(x1, y1, 选项1, x2, y2, 选项2, ……)上面的plot 格式中,选项是指为了区分多条画出曲线的颜色,线型及标记点而设定的曲线的属性.MATLAB 在多组变量绘图时,可将曲线以不同的颜色,不同的线型及标记点表示出来.这些选项如下表所示:各种颜色属性选项'r' 红色'm' 粉红'g' 绿色'c' 青色'b' 兰色'w' 白色'y' 黄色'k' 黑色各种线型属性选项'-' 实线'--' 虚线':' 点线'-.' 点划线各种标记点属性选项'.' 用点号绘制各数据点'^' 用上三角绘制各数据点'+' 用'+'号绘制各数据点'v' 用下三角绘制各数据点'*' 用'*'号绘制各数据点'>' 用右三角绘制各数据点' .' 用'.'号绘制各数据点'<' 用左三角绘制各数据点's'或squar 用正方形绘制各数据点'p' 用五角星绘制各数据点'd'或diamond 用菱形绘制各数据点'h' 用六角星绘制各数据点这些选项可以连在一起用,如:'-.g'表示绘制绿色的点划线,'g+'表示用绿色的'+'号绘制曲线.注意:1)表示属性的符号必须放在同一个字符串中;2)可同时指定2~3 个属性;3)与先后顺序无关;4)指定的属性中,同一种属性不能有两个以上.例:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r',t,y2, ':g',t,y3, '*b')该程序还可以按下面的方式写:t=0:0.1:2*pi;y1=sin(t);y2=cos(t);y3=sin(t).*cos(t);plot(t,y1, '-r')hold onplot(t,y2, ':g')plot(t,y3, '*b')hold off注:在MATLAB 中,如画图前已有打开的图形窗口,则再画图系统将自动擦掉坐标系中已有的图形对象,但设置了hold on 后,可以保持坐标系中已绘出的图形.还可以进一步设置包括线的宽度(LineWidth), 标记点的边缘颜色(MarkerEdgeColor),填充颜色(MarkerFaceColor)及标记点的大小(MarkerSize)等其它绘图属性.例:设置绘图线的线型,颜色,宽度,标记点的颜色及大小.t=0:pi/20:pi;y=sin(4*t).*sin(t)/2;plot(t,y,'-bs','LineWidth',2,... %设置线的宽度为2'MarkerEdgeColor','k',... %设置标记点边缘颜色为黑色'MarkerFaceColor','y',... %设置标记点填充颜色为黄色'MarkerSize',10) %设置标记点的尺寸为104.双Y 轴绘图:plotyy()函数.其调用格式为: plotyy(x1,y1,x2,y2)------绘制由x1,y1 和x2,y2 确定的两组曲线,其中x1,y1 的坐标轴在图形窗口的左侧,x2,y2 的坐标轴在图形窗口的右侧.Plotyy(x1,y1,x2,y2, 'function1','function2')------功能同上,function 是指那些绘图函数如:plot,semilogx,loglog 等.例如:在一个图形窗口中绘制双Y 轴曲线.x=0:0.3:12;y=exp(-0.3*x).*sin(x)+0.5;plotyy(x,y,x,y,'plot','stem')stem:绘制stem 形式的曲线(上端带圈的竖线).绘图结果:两条图线自动用不同的颜色区分,两个坐标的颜色与图线的颜色相对应,左边的Y 轴坐标对应的是plot 形式的曲线,右边的Y 坐标对应的是stem 形式的曲线.二.对数坐标图绘制函数:在对数坐标图的绘制中,有三种绘图函数:semilogx,semilogy 和loglog 函数.1)semilogx( )------绘制以X 轴为对数坐标轴的对数坐标图. 其调用格式为:semilogx(x,y,'属性选项')其中属性选项同plot 函数.该函数只对横坐标进行对数变换,纵坐标仍为线性坐标.2)semilogy( )------绘制以Y 轴为对数坐标轴的对数坐标图. 其调用格式为:semilogy(x,y,'属性选项')该函数只对纵坐标进行对数变换,横坐标仍为线性坐标.3)loglog( )------ 绘制X,Y 轴均为对数坐标轴的图形.其调用格式为:loglog(x,y,'属性选项')该函数分别对横,纵坐标都进行对数变换.例:x=0:0.1:6*pi;y=cos(x/3)+1/9;subplot(221), semilogx(x,y);subplot(222), semilogy(x,y);subplot(223), loglog(x,y);4)MATLAB 还提供了一个实用的函数:logspace( )函数,可按对数等间距地分布来产生一个向量,其调用格式为:x=logspace(x1,x2,n)这里,x1 表示向量的起点;x2 表示向量的终点;n 表示需要产生向量点的个数(一般可以不给出,采用默认值50).在控制系统分析中一般采用这种方法来构成频率向量w.关于它的应用后面还要讲到.三.极坐标图的绘制函数:绘极坐标图可用polar( )函数.其调用格式如下:polar(theta, rho,'属性选项')------theta:角度向量,rho:幅值向量,属性内容与plot 函数基本一致.例如:极坐标模型为:3145/)/)cos((+ =θρ, ],[πθ80∈则绘出极坐标图的程序为:theta=0:0.1:8*pi;p=cos((5*theta)/4)+1/3;polar(theta,p)四.绘制多个子图:subplot( )函数MATLAB 允许在一个图形窗口上绘制多个子图(如对于多变量系统的输出),允许将窗口分成nxm 个部分.分割图形窗口用subplot 函数来实现,其调用格式为:subplot(n,m,k)或subplot(nmk)------n,m 分别表示将窗口分割的行数和列数,k 表示要画图部分的代号,表示第几个图形,nmk 三个数可以连写,中间不用符号分开.例如:将窗口划分成2x2=4 个部分,可以这样写:subplot(2,2,1),plot(……)subplot(2,2,2),……subplot(2,2,3),……subplot(2,2,4),……注:subplot 函数没有画图功能,只是将窗口分割.第三节图形的修饰与标注MATLAB 提供了一些特殊的函数修饰画出的图形,这些函数如下: 1)坐标轴的标题:title 函数其调用格式为:title('字符串')------字符串可以写中文如:title('My own plot')2)坐标轴的说明:xlabel 和ylabel 函数格式:xlabel('字符串')ylabel('字符串')如:xlabel('This is my X axis') ylabel('My Y axis')3)图形说明文字:text 和gtext 函数A.text 函数:按指定位置在坐标系中写出说明文字.格式为:text(x1, y1, '字符串', '选项') x1,y1 为指定点的坐标;'字符串'为要标注的文字;'选项'决定x1,y1 的坐标单位,如没有选项,则x1,y1 的坐标单位和图中一致;如选项为'sc', 则x1,y1 表示规范化窗口的相对坐标,其范围为0到1.如:text(1,2, '正弦曲线')B.gtext 函数:按照鼠标点按位置写出说明文字.格式为:gtext('字符串')当调用这个函数时,在图形窗口中出现一个随鼠标移动的大十字交叉线,移动鼠标将十字线的交叉点移动到适当的位置,点击鼠标左键,gtext 参数中的字符串就标注在该位置上.4)给图形加网格:grid 函数在调用时直接写grid 即可.上面的函数的应用实例:例:在图形中加注坐标轴标识和标题及在图形中的任意位置加入文本.t=0:pi/100:2*pi;y=sin(t);plot(t,y),grid,axis([0 2*pi -1 1])xlabel('0 leq itt rm leq pi','FontSize',16)ylabel('sin(t)','FontSize',20)title('正弦函数图形','FontName','隶书' ,'FontSize',20) text(pi,sin(pi),'leftarrowsin(t)=0','FontSize',16)text(3*pi/4,sin(3*pi/4),'leftarrowsin(t)=0.707','FontSize',16)text(5*pi/4,sin(5*pi/4),' sin(t)=-0.707rightarrow',... 'FontSize',16,'HorizontalAlignment','right')5)在图形中添加图例框:legend 函数其调用格式为:A.legend('字符串1', '字符串2', ……)------以字符串1,字符串2……作为图形标注的图例.B.legend('字符串1', '字符串2', ……, pos)------pos 指定图例框显示的位置.图例框被预定了6 个显示位置:0------取最佳位置;1------右上角(缺省值);2------左上角;3------左下角;4------右下角;-1------图的右侧.例:在图形中添加图例.x=0:pi/10:2*pi;y1=sin(x);y2=0.6*sin(x);y3=0.3*sin(x);plot(x,y1,x,y2,'-o',x,y3,'-*')legend('曲线1','曲线2','曲线3')6)用鼠标点选屏幕上的点:ginput 函数格式为:[x, y, button]=ginput(n)其中:n 为所选择点的个数;x,y 均为向量,x 为所选n 个点的横坐标;y 为所选n个点的纵坐标.button 为n 维向量,是所选n 个点所对应的鼠标键的标号:1------左键;2------中键;3------右键.可用不同的鼠标键来选点,以区别所选的点.此语句可以放在绘图语句之后,它可在绘出的图形上操作,选择你所感兴趣的点,如峰值点,达到稳态值的点等,给出点的坐标,可求出系统的性能指标.第四节MATLAB 下图形对象的修改MATLAB 图形对象是指图形系统中最基本,最底层的单元,这些对象包括:屏幕(Root), 图形窗口(Figures), 坐标轴(Axes), 控件(Uicontrol), 菜单(Uimenu),线(Lines),块(Patches),面(Surface),图像(Images),文本(Text)等等.根据各对象的相互关系,可以构成如下所示的树状层次:RootFiguresAxes Uicontrol Uimenu Uicontextmenu (对象菜单)Images Line Patch Surface Text对各种图形对象进行修改和控制,要使用MATLAB 的图形对象句柄(Handle).在MATLAB 中,每个图形对象创立时,就被赋予了唯一的标识,这个标识就是该对象的句柄.句柄的值可以是一个数,也可以是一个矢量.如每个计算机的根对象只有一个,它的句柄总是0,图形窗口的句柄总是正整数,它标识了图形窗口的序号等.利用句柄可以操纵一个已经存在的图形对象的属性,特别是对指定图形对象句柄的操作不会影响同时存在的其它图形对象,这一点是非常重要的.一.对图形对象的修改可以用下面函数:1)set 函数:用于设置句柄所指的图形对象的属性.Set 函数的格式为:set(句柄, 属性名1, 属性值1, 属性名2, 属性值2, ……) 例:h=plot(x,y)set(h, 'Color', [1,0,0])------将句柄所指曲线的颜色设为红色.2)get 函数:获取指定句柄的图形对象指定属性的当前值.格式为:get(句柄, '属性名')如: get(gca, 'Xcolor')------获得X 轴的当前颜色属性值. 执行后可返回X 轴的当前颜色属性值[0,0,0](黑色).3)如果没有设置句柄,则可以使用下列函数获得:gcf:获得当前图形窗口的句柄;gca:获得当前坐标轴对象的句柄;gco:获得当前对象的句柄.如:A.要对图形窗口的底色进行修改,可用:set(gcf, 'Color', [1,1,1])------将图形窗口底色设为白色B.要把当前X 轴的颜色改为绿色,可用:set(gca, 'Xcolor', [0,1,0])C.还可对坐标轴的显示刻度进行定义:t=-pi:pi/20:pi;y=sin(t);plot(t,y)set(gca,'xtick',[-pi:pi/2:pi],'xticklabel',['-pi','-pi/ 2','0','pi/2','pi'])本例中用'xtick'属性设置x 轴刻度的位置(从-pi~pi,间隔pi/2,共设置5 个点),用'xticklabel'来指定刻度的值,由于通常习惯于用角度度量三角函数,因此重新设置['-pi','-pi/2','0','pi/2','pi']5 个刻度值.二.一些常用的属性如下:1)Box 属性:决定图形坐标轴是否为方框形式,选项为'on'(有方框), 'off'(无方框);2)'ColorOrder'属性:设置多条曲线的颜色顺序,默认值为:[1 1 0;1 0 1;0 1 1;1 0 0;0 1 0;0 0 1]黄色粉色天蓝红色绿色兰色颜色向量还有:[1 1 1]------白色;[0 0 0]------黑色.3)坐标轴方向属性:'Xdir','Ydir','Zdir',其选项为:'normal'------正常'reverse'------反向4)坐标轴颜色和线型属性:'Xcolor','Ycolor','Zcolor'------ 轴颜色, 值为颜色向量如何在画好曲线后再在图上标刻度就是想在一些特定的点边上标上一串30.60.90~7200递增的数据,共有96个点要标!!im = imread(url);imshow(im)然后输入:text(100,100,'\o ','Color','red');matlab,用imread 读入一个图片,我想在图上的一些坐标点上做标记。
教你如何用matlab绘图(全面)
![教你如何用matlab绘图(全面)](https://img.taocdn.com/s3/m/655933000740be1e650e9a5f.png)
强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基本参数就能得到所需图形,这类函数称为高层绘图函数。
此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。
这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。
本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。
一.二维绘图二维图形是将平面坐标上的数据点连接起来的平面图形。
可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。
二维图形的绘制是其他绘图操作的基础。
一.绘制二维曲线的基本函数在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。
1.plot函数的基本用法plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。
plot函数的应用格式plot(x,y) 其中x,y为长度相同的向量,存储x坐标和y坐标。
例51 在[0 , 2pi]区间,绘制曲线程序如下:在命令窗口中输入以下命令>> x=0:pi/100:2*pi;>> y=2*exp(-0.5*x).*sin(2*pi*x);>> plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线注意:指数函数和正弦函数之间要用点乘运算,因为二者是向量。
例52 绘制曲线这是以参数形式给出的曲线方程,只要给定参数向量,再分别求出x,y向量即可输出曲线:>> t=-pi:pi/100:pi;>> x=t.*cos(3*t);>> y=t.*sin(t).*sin(t);>> plot(x,y)程序执行后,打开一个图形窗口,在其中绘制出如下曲线以上提到plot函数的自变量x,y为长度相同的向量,这是最常见、最基本的用法。
matlab绘图教程
![matlab绘图教程](https://img.taocdn.com/s3/m/c5167547192e45361066f592.png)
二维图形
plot(x,y) – x和y为长度相同的向量, 分别用于存储x坐标和y坐
标数据。 x=0:pi/100:2*pi; y=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y) –当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐 标分别绘制曲线,曲线条数等于矩阵的列数。 t=linspace(0,2*pi,100); x=[t;t]'; y=[sin(t);cos(t)]'; plot(x,y)
数据点
–向量 –矩阵
二维图形
基本函数 : plot –功能:
»自动打开一个图形窗口Figure
»如果已经存在一个图形窗口,plot命令则清除当 前图形,绘制新图形
»根据图形坐标大小自动缩扩坐标轴,将数据标尺 及单位标注自动加到两个坐标轴上;可自定义坐 标轴
»可单窗口单曲线绘图;可单窗口多曲线绘图;可 单窗口多曲线分图绘图;可多窗口绘图
二维图形
plot(x1,y1,选项1,x2,y2, 选项2,…,xn,yn,选项n) –选项:确定颜色、线型和数据点标记符号。 例如, plot(x1,y1,’b-.’,x2,y2, ‘y:d’ ) ‘b-.’:蓝色点划线, ‘y:d’:黄色虚线并用菱形符标记数据点。 –选项省略时,线型一律用实线,颜色将根据曲线的先 后顺序依次采用下表中给出的前7种颜色。 t=0:0.2:2*pi; x=sin(t); y=cos(t); plot(t,x,'+r',t,y,'-b')
坐标控制:设定坐标系范围 自动根据要绘制曲线数据的范围选择合适的 坐标刻度,使得曲线能够尽可能清晰地显示 出来。
matlab画图函数plot使用方法
![matlab画图函数plot使用方法](https://img.taocdn.com/s3/m/7f4fda7a51e79b8969022619.png)
油墨墨层厚度与印刷密度的关系研究
实验
①实验仪器 荷兰AIC2-5T2000印刷适性仪;美国爱色丽X-Rite 528分光光度计;IGT 精量注墨器;IGT Testing Systems供墨表。 ②实验材料 天狮牌亮光快干青色油墨;铜版纸128g/m2。 ③实验因素 印刷环境温度为23℃±1℃,印刷环境相对湿度50%±2%,印刷压力为 625N,印刷速度为0.2m/s。 ④实验步骤 本次实验先是通过AIC2-5T2000印刷适性仪将青色油墨转移到纸张样条 上,因为转移时用的是精量注墨器,所以转移时的墨量是已知的,假设供墨 表上墨量和墨层厚度的对应关系是正确的,则墨层厚度也是已知的,然后用 分光光度计测量测量密度。 ⑤上机印刷 A.将铜版纸切成36条50mm×340mm纸张样条,为了排除其他因素的干 扰,取12组墨量,对应12组墨层厚度,每组印刷3次,得到36个密度值,取 每组中印刷精度最高的一个密度值作为实验数据。
技术 TECHNOLOGY
墨层厚度与密度 关系研究
文/王静 司占军
20世纪以后,随着新技术、新 材料等印刷科技的发展,印刷品质 量也得到了突飞猛进的提高,客户 对印刷品质量的要求也越来越高。 但是印刷是一个相对比较复杂的技 术系统,即使印刷设备的自动化水 平越来越高,也难免有一些印刷工 序各环节衔接不当,或者其他一些 随机性的因素。而影响印刷品质量 的最重要的两个因素就是墨层厚度 和密度。印刷企业都希望能用最少 的墨量来实现最佳印刷色彩再现效 果的目的,这样不仅可以节约生产
中 , 只 有 墨 层 厚 度 是 一 个 不 可 控 厚度增加的现象,大部分纸张的密度在墨层厚度是10微米左右的时候就实现
量,油墨的色相和浓度是可控量, 了饱和状态,此时的密度值就是最大密度值,也就是说即使墨层厚度再增
第五讲 MATLAB绘图
![第五讲 MATLAB绘图](https://img.taocdn.com/s3/m/a25e622a4b35eefdc8d3339a.png)
第五讲 MATLAB绘图y 内容 y 画图入门 y 打印图象 y 联合作图 y 图像设置 循 结构( 固) y 循环结构(巩固) y 目的 y 能够进行MATLAB绘图1画图入门y MATLAB的扩展性和机制独立的画图功能是一个极其重要的功能.这个功能使数据画图变得十分简单.画一个数据图, 首先要创建两个向量,由x, y构成,然后使用plot函数。
x=0:1:10; 0 1 10 y=x.^2-10*x+15; plot(x y); plot(x,y);2y 正如我们所看到的,在MATLAB中画图是十分容易的.只要任何 对向量的长度相同,那么它就可以就能可视化地画出 任何一对向量的长度相同 来。
但是这还不是最后的结果,因为它还没有标题,坐标轴 标签,网格线。
y 给图增加标题和坐标轴标签将会用到title, xlabel, ylable函数。
调用每个函数时将会有一个字符串,这个字符串包含了图 象标题和坐标轴标签的信息 用grid 象标题和坐标轴标签的信息。
用 id命令可使网格线出现 或消失在图象中,grid on代表在图象中出现网格线,grid off代表去除网格线。
3给图增加标题和坐标轴标签将会用到title, xlabel, ylable函数。
调用每个函数时将会有一个字符串,这个字 符串包含了图象标题和坐标轴标签的信息。
用grid命令可 使网格线出现或消失在图象中,grid on代表在图象中出现 网格线 grid 网格线, id off ff代表去除网格线。
代表去除网格线 x 0:1:10; x=0:1:10; y=x.^2-10*x+15; plot(x,y); title ('Plot of y=x.^2-10*x+15'); xlabel ('x'); ylabel l b l ('y'); (' ') grid on;4打印图象y 一个图象一旦建立,我们就可以用print命令在打印机上打印出这幅图,也可以单击图象窗口的打印图标或者在文件 印出这幅图 也可以单击图象窗口的打印图标或者在文件 菜单中选择打印项打印。
关于matlab的一些画图技巧及希腊字母下标
![关于matlab的一些画图技巧及希腊字母下标](https://img.taocdn.com/s3/m/e9a249571ed9ad51f01df2c3.png)
matlab中如何在指定一点画一个填充颜色的小圆plot(1,1,'r.','markersize',50)二维作图绘图命令plot绘制x-y坐标图;loglog命令绘制对数坐标图;semilogx和semilogy命令绘制半对数坐标图;polor命令绘制极坐标图.基本形式如果y是一个向量,那么plot(y)绘制一个y中元素的线性图.假设我们希望画出y=[0., 0.48, 0.84, 1., 0.91, 6.14 ]则用命令:plot(y)它相当于命令:plot(x, y),其中x=[1,2,…,n]或x=[1;2;…;n],即向量y的下标编号, n为向量y的长度Matlab会产生一个图形窗口,显示如下图形,请注意:坐标x和y是由计算机自动绘出的.图4.1.1.1 plot([0.,0.48,0.84,1.,0.91,6.14])上面的图形没有加上x轴和y轴的标注,也没有标题.用xlabel,ylabel,title 命令可以加上.如果x,y是同样长度的向量,plot(x,y)命令可画出相应的x元素与y元素的x-y坐标图.例:x=0:0.05:4*pi; y=sin(x); plot(x,y)grid on, title(' y=sin( x )曲线图' )xlabel(' x = 0 : 0.05 : 4Pi ')结果见下图.图4.1.1.2 y=sin(x)的图形title图形标题xlabel x坐标轴标注ylabel y坐标轴标注text标注数据点grid给图形加上网格hold保持图形窗口的图形表4.1.1.1 Matlab图形命令多重线在一个单线图上,绘制多重线有三种办法.第一种方法是利用plot的多变量方式绘制:plot(x1,y1,x2,y2,...,xn,yn)x1,y1,x2,y2,...,xn,yn是成对的向量,每一对x, y在图上产生如上方式的单线.多变量方式绘图是允许不同长度的向量显示在同一图形上.第二种方法也是利用plot绘制,但加上hold on/off命令的配合:plot(x1,y1)hold onplot(x2,y2)hold off第三种方法还是利用plot绘制,但代入矩阵:如果plot用于两个变量plot(x,y),并且x,y是矩阵,则有以下情况:(1)如果y是矩阵,x是向量,plot(x,y)用不同的画线形式绘出y的行或列及相应的x向量,y的行或列的方向与x向量元素的值选择是相同的.(2)如果x是矩阵,y是向量,则除了x向量的线族及相应的y向量外,以上的规则也适用.(3)如果x,y是同样大小的矩阵,plot(x,y)绘制x的列及y相应的列.还有其它一些情况,请参见Matlab的帮助系统.线型和颜色的控制如果不指定划线方式和颜色,Matlab会自动为您选择点的表示方式及颜色.您也可以用不同的符号指定不同的曲线绘制方式.例如:plot(x,y,'*') 用'*'作为点绘制的图形.plot(x1,y1,':',x2,y2,'+') 用':'画第一条线,用'+'画第二条线.线型、点标记和颜色的取值有以下几种:线型点标记颜色-实线.点y黄:虚线o小圆圈m棕色-.点划线x叉子符c青色--间断线+加号r红色*星号g绿色s方格b蓝色d菱形w白色^朝上三角k黑色v朝下三角> 朝右三角< 朝左三角p五角星h六角星表4.1.3.1线型和颜色控制符如果你的计算机系统不支持彩色显示,Matlab将把颜色符号解释为线型符号,用不同的线型表示不同的颜色.颜色与线型也可以一起给出,即同时指定曲线的颜色和线型.例如:t=-3.14:0.2:3.14;x=sin(t); y=cos(t);plot(t,x, '+r',t,y, '-b')图4.1.3.1不同线型、颜色的sin,cos图形对数图、极坐标图及条形图loglog、semilogx、semilogy和polar的用法和plot相似.这些命令允许数据在不同的graph paper上绘制,例如不同的坐标系统.先介绍的fplot是扩展来的可用于符号作图的函数.●fplot(fname,lims)绘制fname指定的函数的图形.●polar( theta, rho)使用相角theta为极坐标形式绘图,相应半径为rho,其次可使用grid命令画出极坐标网格.●loglog 用log10-log10标度绘图.●semilogx用半对数坐标绘图,x轴是log10,y是线性的.●semilogy用半对数坐标绘图,y轴是log10,x是线性的.●bar(x)显示x向量元素的条形图,bar不接受多变量.●hist绘制统计频率直方图.●histfit(data,nbins)绘制统计直方图与其正态分布拟合曲线.fplot函数的绘制区域为lims=[xmin,xmax],也可以用lims=[xmin,xmax,ymin,ymax]指定y轴的区域.函数表达式可以是一个函数名,如sin,tan等;也可以是带上参数x的函数表达式,如sin(x),diric(x,10);也可以是一个用方括号括起的函数组,如[sin, cos].例1:fplot('sin',[0 4*pi])例2:fplot('sin(1 ./ x)', [0.01 0.1])例3:fplot('abs(exp(-j*x*(0:9))*ones(10,1))',[0 2*pi],'-o')例4:fplot('[sin(x), cos(x) , tan(x)]',[-2*pi 2*pi -2*pi 2*pi]) %%(图4.1.4.1)图4.1.4.1 sin,cos,tan函数图形图4.1.4.2半对数图下面介绍的是其它几个作图函数的应用.例5:半对数坐标绘图t=0.001:0.002:20;y=5 + log(t) + t;semilogx(t,y, 'b')hold onsemilogx(t,t+5, 'r') %% (图4.1.4.2)例6:极坐标绘图t=0:0.01:2*pi;polar(t,sin(6*t)) %% (图4.1.4.3)图4.1.4.3极坐标绘图图4.1.4.4正态分布的统计直方图与其正态分布拟合曲线例7:正态分布图我们可以用命令normrnd生成符合正态分布的随机数.normrnd(u,v,m,n)其中,u表示生成随机数的期望,v代表随机数的方差.运行:a=normrnd(10,2,10000,1);histfit(a) %% (图4.1.4.4)我们可以得到正态分布的统计直方图与其正态分布拟合曲线.例8:比较正态分布(图4.1.4.5(1))与平均分布(图4.1.4.5(2))的分布图:yn=randn(30000,1); %%正态分布x=min(yn) : 0.2 : max(yn);subplot(121)hist(yn, x)yu=rand(30000,1); %%平均分布subplot(122)hist(yu, 25)4.1.4.5(1) 4.1.4.5(2)图4.1.4.5正态分布与平均分布的分布图在绘图过程中,经常要把几个图形在同一个图形窗口中表现出来,而不是简单地叠加(例如上面的例8).这就用到函数subplot.其调用格式如下:subplot(m,n,p)subplot函数把一个图形窗口分割成m×n个子区域,用户可以通过参数p 调用个各子绘图区域进行操作.子绘图区域的编号为按行从左至右编号.例9:绘制子图x=0:0.1*pi:2*pi;subplot(2,2,1)plot(x,sin(x),'-*');title('sin(x)');subplot(2,2,2)plot(x,cos(x),'--o');title('cos(x)');subplot(2,2,3)plot(x,sin(2*x),'-.*');title('sin(2x)');subplot(2,2,4);plot(x,cos(3*x),':d')title('cos(3x)')得到图形如下:图4.1.5.1子图利用二维绘图函数patch,我们可绘制填充图.绘制填充图的另一个函数为fill.下面的例子绘出了函数humps(一个Matlab演示函数)在指定区域内的函数图形.例10:用函数patch绘制填充图fplot('humps',[0,2],'b')patch([0.5 0.5:0.02:1 1],[0 humps(0.5:0.02:1) 0],'r');hold offtitle('A region under an interesting function.')grid图4.1.6.1填充图我们还可以用函数fill来绘制类似的填充图.例11:用函数fill绘制填充图x=0:pi/60:2*pi;y=sin(x);x1=0:pi/60:1;y1=sin(x1);plot(x,y,'r');fill([x1 1],[y1 0],'g')图4.1.6.2填充图三维作图mesh(Z)语句可以给出矩阵Z元素的三维消隐图,网络表面由Z坐标点定义,与前面叙述的x-y平面的线格相同,图形由邻近的点连接而成.它可用来显示用其它方式难以输出的包含大量数据的大型矩阵,也可用来绘制Z变量函数.显示两变量的函数Z=f(x,y),第一步需产生特定的行和列的x-y矩阵.然后计算函数在各网格点上的值.最后用mesh函数输出.下面我们绘制sin(r)/r函数的图形.建立图形用以下方法:x=-8:.5:8;y=x';x=ones(size(y))*x;y=y*ones(size(y))';R=sqrt(x.^2+y.^2)+eps;z=sin(R)./R;mesh(z) %% 试运行mesh(x,y,z),看看与mesh(z)有什么不同之处?各语句的意义是:首先建立行向量x,列向量y;然后按向量的长度建立1-矩阵;用向量乘以产生的1-矩阵,生成网格矩阵,它们的值对应于x-y坐标平面;接下来计算各网格点的半径;最后计算函数值矩阵Z.用mesh函数即可以得到图形.图4.2.1三维消隐图第一条语句x的赋值为定义域,在其上估计函数;第三条语句建立一个重复行的x矩阵,第四条语句产生y的响应,第五条语句产生矩阵R(其元素为各网格点到原点的距离).用mesh方法结果如上.另外,上述命令系列中的前4行可用以下一条命令替代:[x, y]=meshgrid(-8:0.5:8)(1) meshc与函数mesh的调用方式相同,只是该函数在mesh的基础上又增加了绘制相应等高线的功能.下面来看一个meshc的例子:[x,y]=meshgrid([-4:.5:4]);z=sqrt(x.^2+y.^2);meshc(z) %% 试运行meshc(x,y,z),看看与meshc(z)有什么不同之处?我们可以得到图形:图4.2.2.1 meshc 图地面上的圆圈就是上面图形的等高线.(2)函数meshz与mesh的调用方式也相同,不同的是该函数在mesh函数的作用之上增加了屏蔽作用,即增加了边界面屏蔽.例如:[x,y]=meshgrid([-4:.5:4]);z=sqrt(x.^2+y.^2);meshz(z) %% 试运行meshz(x,y,z),看看与meshz(z)有什么不同之处?我们得到图形:图4.2.2.2 meshz 图(1)在Matlab中有一个专门绘制圆球体的函数sphere,其调用格式如下:[x,y,z]=sphere(n)此函数生成三个(n+1)×(n+1)阶的矩阵,再利用函数surf(x,y,z)可生成单位球面.[x,y,z]=sphere 此形式使用了默认值n=20sphere(n) 只绘制球面图,不返回值.运行下面程序:sphere(30);axis square;我们得到球体图形:图4.2.3.1 球面图若只输入sphere画图,则是默认了n=20的情况.(2) surf函数也是Matlab中常用的三维绘图函数.其调用格式如下:surf(x,y,z,c)输入参数的设置与mesh相同,不同的是mesh函数绘制的是一网格图,而surf绘制的是着色的三维表面.Matlab语言对表面进行着色的方法是,在得到相应网格后,对每一网格依据该网格所代表的节点的色值(由变量c控制),来定义这一网格的颜色.若不输入c,则默认为c=z.我们看下面的例子:%绘制地球表面的气温分布示意图.[a,b,c]=sphere(40);t=abs(c); %求绝对值surf(a,b,c,t);axis equalcolormap('hot')我们可以得到图形如下:图4.2.3.2 等温线示意图(1)坐标轴的控制函数axis,调用格式如下:axis([xmin,xmax,ymin,ymax,zmin,zmax])用此命令可以控制坐标轴的范围.与axis相关的几条常用命令还有:axis auto 自动模式,使得图形的坐标范围满足图中一切图元素axis equal 严格控制各坐标的分度使其相等axis square 使绘图区为正方形axis on 恢复对坐标轴的一切设置axis off 取消对坐标轴的一切设置axis manual 以当前的坐标限制图形的绘制(2)grid on 在图形中绘制坐标网格.grid off 取消坐标网格.(3)xlabel, ylabel, zlabel分别为x轴, y轴, z轴添加标注.title为图形添加标题.以上函数的调用格式大同小异,我们以xlabel为例进行介绍:xlabel('标注文本','属性1','属性值1','属性2','属性值2',…)这里的属性是标注文本的属性,包括字体大小、字体名、字体粗细等.例如:[x, y]=meshgrid(-4:.2:4);R=sqrt(x.^2+y.^2);z=-cos(R);mesh(x,y,z)xlabel('x\in[-4,4]','fontweight','bold');ylabel('y\in[-4,4]','fontweight','bold');zlabel('z=-cos(sqrt(x^2+y^2))','fontweight','bold');title('旋转曲面','fontsize',15,'fontweight','bold','fontname','隶书');图4.2.4.1添加标注以上各种绘图方法的详细用法,请看联机信息.对平面上n个点:在平面直线族{为实数}中寻求一条直线,使得散点到与散点相对应的在直线上的点之间的纵坐标的误差的平方和最小,用微积分的方法可得:所求得的这条直线:称为回归直线.例:已知如下点列,求其回归直线,并计算最小误差平方和.x0.10.11.12.13.14.15.16.17.18.2.21.23y4243.54545.54547.5495350555560参考的程序如下:x=[0.1 0.11 .12 .13 .14 .15 .16 .17 .18 .2 .21 .23]; y=[42 43.5 45 45.5 45 47.5 49 53 50 55 55 60]; n=length(x);xb=mean(x);yb=mean(y);x2b=sum(x.^2)/n;xyb=x*y'/n;b=(xb*yb-xyb)/(xb^2-x2b);a=yb-b*xb;y1=a+b.*x;plot(x,y,'*',x,y1);serror=sum((y-y1).^2)Matlab中下标及希腊字母很多时候都要在matlab画图的时候添加一些公式符号之类的,有一些特殊的字符并不能直接从键盘上输入,比如希腊字母等等。
matlab画图技巧
![matlab画图技巧](https://img.taocdn.com/s3/m/ecff21e59b89680203d8256d.png)
matlab--三维作图--空间曲面matlab 2010-09-05 21:44:59 阅读122 评论0 字号:大中小订阅(1) surf(x,y,z)画出数据点(x,y,z)表示的曲面x,y,z 数据矩阵.分别表示数据点的横坐标、纵坐标、函数值例1:画函数Z=(X+Y)2 的图形.解:x=-3:0.1:3;y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=(X+Y).^2;surf(X,Y,Z)shading flat %将当前图形变得平滑rotate3d运行后所得图形是:(2)mesh(x,y,z) 画网格曲面x,y,z 数据矩阵.分别表示数据点的横坐标、纵坐标、函数值。
例2:画出曲面Z=(X+Y)^2在不同视角的网格图.解x=-3:0.1:3; y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=(X+Y).^2;mesh(X,Y,Z)运行后所得图形是:(3)meshz(X,Y,Z)在网格周围画一个curtain图(如,参考平面)例3:绘peaks的网格图解:输入命令:[X,Y]=meshgrid(-3:.125:3);Z=praks(X,Y);meshz(X,Y,Z)运行后所得的图形是:%特殊图形绘制x=0:0.2:5;y=2*exp(0.1*x); subplot(2,2,1), bar(x,y,'g');title('bar(x,y)');axis([0 5 0 2]); subplot(2,2,2), stairs(x,y,'b');title('stairs(x,y)');axis([0 5 0 2]);subplot(2,2,3), stem(x,y,'k');title('stem(x,y)');axis([0 5 0 2]);subplot(2,2,4), fill(x,y,'r');title('fill(x,y)');axis([0 5 0 2]);%图像的剪裁`放大`旋转clear;clc;load chess;subplot(2,2,1);subimage(X,map);title('原图像');x1=imcrop(X,map,[60 40 100 90]);subplot(2,2,2);subimage(x1,map);title('原图像的剪裁块');x2=imresize(X,2);subplot(2,2,3);subimage(X,map);title('放大二倍的原图像');x3=imrotate(X,60,'crop');subplot(2,2,4); subimage(x3,map);title('旋转的图像');%加入噪声前后的图像对比clear;clc;load woman;X1=imnoise(uint8(X));subplot(1,2,1);subimage(X1,map);title('加入噪声的图像');X2=medfilt2(X1);subplot(1,2,2);subimage(X2,map);title('处理后的图像');%函数z=x.^2 + y.^2的三维曲面图x=-4:4;y=x;[x,y]=meshgrid(x,y);z=x.^2+y.^2;figure(1);mesh(x,y,z);xlabel('x.axis');ylabel('y.axis');zlabel('z.axis');title('mesh');figure(2);surf(x,y,z);xlabel('x.axis');ylabel('y.axis');zlabel('z.axis');title('surf');figure(3);plot3(x,y,z);xlabel('x.axis');ylabel('y.axis');zlabel('z.axis');title('plot3_1');matlab绘制三维图形2010-06-22 14:13三维曲线plot3函数与plot函数用法十分相似,其调用格式为:plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。
matlab画图总结
![matlab画图总结](https://img.taocdn.com/s3/m/a82436d4ed630b1c58eeb5cd.png)
1、小整理:MATLAB基本绘图函数plot: x轴和y轴均为线性刻度(Linear scale)loglog: x轴和y轴均为对数刻度(Logarithmic scale)semilogx: x轴为对数刻度,y轴为线性刻度semilogy: x轴为线性刻度,y轴为对数刻度====================================================2、在Matlab中一张图中画出多个函数 plot(x1,y1,x2,y2,x3,y3)3、若要改变颜色,在座标对后面加上相关字串即可:plot(x, sin(x), 'c’, x,cos(x), 'g’);若要同时改变颜色及图线型态(Line style),也是在座标对后面加上相关字串即可:plot(x, sin(x),'co’, x, cos(x),’g*’);plot绘图函数的叁数字元颜色字元图线型态y 黄色 . 点k 黑色 o 圆w 白色 x xb 蓝色 + +g 绿色**r 红色 - 实线c 亮青色 : 点线m 锰紫色 -。
点虚线-- 虚线'。
’用点号绘制各数据点'^’用上三角绘制各数据点'+' 用’+’号绘制各数据点’v' 用下三角绘制各数据点’*' 用'*'号绘制各数据点’〉’用右三角绘制各数据点' 。
' 用’.'号绘制各数据点’<' 用左三角绘制各数据点’s'或squar 用正方形绘制各数据点’p’用五角星绘制各数据点'd'或diamond用菱形绘制各数据点'h’用六角星绘制各数据点4、图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整图轴的范围:axis([0, 6, -1.2, 1。
2]);5、MATLAB也可对图形加上各种注解与处理:xlabel('Input Value');% x轴注解ylabel(’Function Value');% y轴注解title('Two Trigonometric Functions'); %图形标题legend('y = sin(x)’,'y = cos(x)’); % 图形注解grid on; % 显示格线6、如何改变MATLAB坐标轴间隔?x=[20,22,24,26,28,30,32,34,36,38,40,42,44];y=[62。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab绘图的一些技巧1.在坐标轴上任意标上感兴趣的刻度。
用XTick、YTick、ZTick。
如图1.如:x=0:0.1:10;y=x.^2;h=plot(x,y,'o',x,y);set(gca,'YTick',[0,10,25,50,80,99],'XTick',[0.5,8,10]); 用XTickLabel、YTickLabel、ZTickLabel属性把标记标签从数值改为字符串。
如图2.如将y轴上的值80用字符串代替:x=0:0.1:10;y=x.^2;h=plot(x,y,'o',x,y);set(gca,'YTickLabel','0|10|25|50|cutoff|99');图1图22.使用多个x轴和y轴XAxisLocation和YAxisLocation属性指定在图形的哪一侧放置x轴和y轴。
如图3.x1=0:0.01:10;y1=sin(x1);h1=line(x1,y1,'Color','r');ax1=gca;set(ax1,'XColor','r','YColor','r');ax2=axes('Position',get(ax1,'Position'),'XAxisLocation','top','YAxisLocation','right','Color','none',' XColor','k','YColor','k');x2=x1;y2=cos(x2);h2=line(x2,y2,'Color','k','Parent',ax2);图33.连接图形与变量(更新自变量或因变量的值)用数据源属性XDataSource、YDataSource、ZDataSource及refreshdata.可以做动画。
t=0:0.01:2*pi;y=exp(sin(t));h=plot(t,y,'YDataSource','y');for k=1:0.1:20y=exp(sin(t.*k));refreshdata(h,'caller');drawnow;pause(0.1);end4.创建组(Hggroup)对象将每个Hggroup子对象的HitTest属性值设置为off,使得单击任何子对象时,可以选择所有子对象。
将每个Hggroup子对象的HitTest属性值设置为off,使得单击任何子对象时,该Hggroup 对象成为当前对象。
设置Hggroup对象的Vision属性会同时将每个子对象的Vision属性值为相同值。
鼠标点击图4中任意一条线,变为图5.hg=hggroup('ButtonDownFcn',@set_lines);hl=line(randn(5),randn(5),'HitTest','off','Parent',hg);function set_lines(cb,eventdata)hl=get(cb,'Children');lw=get(hl,'Linewidth');set(hl,{'Linewidth'},num2cell([lw{:}]+1,[5,1])');图4图55.创建Hgtransform对象将Hgtransform对象作为父对象的优点:该对象提供了对其子对象进行变换的能力,包括平移、比例化、旋转。
Hgtransform对象可以包括其他对象,从而在处理可见性、大小、方向等属性时,可以将Hgtransform对象及其子对象作为单个实体处理。
操作时,将对象的Parent属性设置为Hgtransform对象的句柄。
用一组父对象为单个Hgtransform对象的表面对象创建3维星形图。
将Hgtransform对象绕z 轴旋转,同时缩放。
(1)创建一个axes对象。
ax=axes('XLim',[-1.5,1.5],'YLim',[-1.5,1.5],'ZLim',[-1.5,1.5]);view(3);grid on; axis equal;(2)创建希望作为Hgtransform对象子对象的对象。
[x,y,z]=cylinder([0.2,0]);h(1)=surface(x,y,z,'FaceColor','r');h(2)=surface(x,y,-z,'FaceColor','g');h(3)=surface(z,x,y,'FaceColor','b');h(4)=surface(-z,x,y,'FaceColor','c');h(5)=surface(y,z,x,'FaceColor','m');h(6)=surface(y,-z,x,'FaceColor','y');(3)创建一个Hgtransform对象,并作为刚刚创建的一系列表面对象的父对象。
t=hgtransform('Parent',ax);set(h,'Parent',t);(4)选择一个渲染器并显示对象。
set(gcf,'Renderer','opengl');drawnow;(5)将旋转和比例化矩阵初始化Rz=eye(4);Sxy=Rz;(6)组成z轴旋转矩阵和比例化矩阵for r=1:0.1:2*piRz=makehgtform('zrotate',r);Sxy=makehgtform('scale',r/4);set(t,'Matrix',Rz*Sxy);drawnow;endpause(1);(7) 用单位矩阵重新设置原始方位和大小set(t,'Matrix',eye(4));图66.三维图形绕x、y、z轴旋转或平移h=surface(peaks(40));view(-20,30);t=hgtransform;set(h,'Parent',t);ry_angle=-30*pi/180;rx_angle=30*pi/180;Ry=makehgtform('yrotate',ry_angle);Rx=makehgtform('xrotate',rx_angle);set(t,'Matrix',Ry);pause(2);set(t,'Matrix',Rx);pause(2);Tx1=makehgtform('translate',[-5,0,0]);Tx2=makehgtform('translate',[5,0,0]);set(t,'Matrix',Rx*Tx2*Ry*Tx1);7.用属性值查找对象——findobj函数以及使用逻辑操作符和正则表达式(1)Find all line objects in the current axes:h = findobj(gca,'Type','line')(2)Find all objects having a Label set to 'foo' and a String set to 'bar':h = findobj('Label','foo','-and','String','bar');(3)Find all objects whose String is not 'foo' and is not 'bar':h = findobj('-not','String','foo','-not','String','bar');(4)Find all objects having a String set to 'foo' and a Tag set to 'button one' and whose Color is not 'red' or 'blue':h = findobj('String','foo','-and','Tag','button one',...'-and','-not',{'Color','red','-or','Color','blue'})(5)Find all objects for which you have assigned a value to the Tag property (that is, the value is not the empty string ''):h = findobj('-regexp','Tag','[^'']')(6)Find all children of the current figure that have their BackgroundColor property set to a certain shade of gray ([.7 .7 .7]). This statement also searches the current figure for the matching property value pair.h = findobj(gcf,'-depth',1,'BackgroundColor',[.7 .7 .7])8.复制和删除对象复制:new_handle = copyobj(h,p)h = surf(peaks);colormap hot;figure;new_handle1 = copyobj(h,gca); colormap cool;view(3);grid on;图7删除:delete(h),delete(handle_array) 8、直方图的标注clear;x = -2.9:0.5:2.9;y=exp(-x.*x);bar(x,y,'g','EdgeColor',[1,0.5,0.5]);set(gcf,'color','w');set(gca,'FontSize',12,'XTick',[-4:0.5:3]); legend('直方图示例');for i=1:length(x)str=sprintf('%4.2f',y(i));text(x(i)-0.1,y(i)+0.02,str);end。