matlab画图技巧方法

matlab画图技巧方法
matlab画图技巧方法

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

图2

2.使用多个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);

图3

3.连接图形与变量(更新自变量或因变量的值)

用数据源属性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:20

y=exp(sin(t.*k));

refreshdata(h,'caller');

drawnow;

pause(0.1);

end

4.创建组(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

图5

5.创建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*pi

Rz=makehgtform('zrotate',r);

Sxy=makehgtform('scale',r/4);

set(t,'Matrix',Rz*Sxy);

drawnow;

end

pause(1);

(7) 用单位矩阵重新设置原始方位和大小set(t,'Matrix',eye(4));

图6

6.三维图形绕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

MATLAB绘图功能大全

Matlab绘图 强大的绘图功能是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 小知识 1、翻转fliplr(左右)、flipud(上下) fftshift()上下左右 fftshift(,1)对行(row)同时操作,引起列的变化(不是简单的上下) 类似fpliud fftshift(,2)对列(column)同时操作,引起行的变化(不是简单的左右) 类似fplilr eg:a=[1 2 3;4 5 6; 7,8 9]; fliplr=321 654 987 flipud= 789 456 123 fftshift=978 312 645 fftshift(a,1)= 789 123 456 fftshift(a,2)= 312 645 978 2、data:Naz*Nrg,行为方位向,列为距离向 fft(,[],1)同时对一列进行fft,在SAR数据处理中为方位向FFT,变换到距离时域,方位频域(距离-多普勒域)== fft() fft(,[],2)同时对一行进行fft,在SAR数据处理中为距离向FFT,变换到距离频域,方位时域。== fft(x.’).’ fft(,[],1) + fft(,[],2) = fft2() 3、conj(共轭) conv(卷积) 4、imagesc,colormap(gray) 5、转置:“’” 对于复数为共轭转置,若要只转置不取共轭,则应该是“.’” 对于实数,“’”即可实现转置。 6、对于有复数j的程序,在循环中切忌再次使用j作为循环变量,同理,不可再次定义变量j进行其他运算。 7、算法优化: a) sinc(1:100)比单独计算sinc(1)…sinc(100)快N倍; b) 如果遇到a^2*b^2,则可以先计算(a*b)再对乘积求平方; 8、eps 计算机最小正数,在pc机上,它等于2e-52。 9、保存的指令格式 (1)save 工作间中的所有变量保存在磁盘上名为matlab.mat 的文件中。(2)save [文件名] [变量名] 将指定的变量保存在指定文件中,如: save temp x y z 把x,y,z 这三个变量保存在文件temp.mat 中。在下次加载MATLAB 时可以利用load 指令将保存在文件中的变量恢复到工作间中其格式有: (1)load 将保存在matlab.mat 中的变量装入到MATLAB 工作间中。 (2)load [文件名] [变量名] 从指定的文件中将指定的变量装入。 save e:\mydir\data AR load e:\mydir\data AR 10、reshape(变量,行,列) 11、取整函数: fix朝零方向取整ceil 朝正无穷大方向取整

MATLAB中plotyy函数详解:matlab双Y轴作图

Matlab plotyy画双纵坐标图实例 x = 0::20; y1 = 200*exp*x).*sin(x); y2 = *exp*x).*sin(10*x); [AX,H1,H2] = plotyy(x,y1,x,y2,'plot'); set(AX(1),'XColor','k','YColor','b'); set(AX(2),'XColor','k','YColor','r'); HH1=get(AX(1),'Ylabel'); set(HH1,'String','Left Y-axis'); set(HH1,'color','b'); HH2=get(AX(2),'Ylabel'); set(HH2,'String','Right Y-axis'); set(HH2,'color','r'); set(H1,'LineStyle','-'); set(H1,'color','b'); set(H2,'LineStyle',':'); set(H2,'color','r'); legend([H1,H2],{'y1 = 200*exp*x).*sin(x)';'y2 = *exp*x).*sin(10*x)'}); xlabel('Zero to 20 musec.');

title('Labeling plotyy'); Q:右边用蓝色圈起来的tick能去掉吗由于用plotyy画图,为了使图尽量地显示出来,用了set(AX(1),'YLimMode','auto'),但这样可能会导致左边AX(1)和右边AX(2)的tick的间距不一样,影响美观。或者说能不能使plotyy画出的图两边的tick间距是一样的,这样在图形右边的tick就会重合在一起. A:如果只是想让plotyy的图美一些,可以使用其如下形式的调用方式: [AX,H1,H2] = plotyy(...) 其中AX(2)就是右边Axes对象的句柄,拿到它以后就可以set或者get来处理了,也可以把其ytick关掉。 A:也可以用line语句来画,就没有左边和上边的线了。 Q:plotyy(X1,Y1,X2,Y2,FUN1,FUN2),FUN1和FUN2应该怎么写 A:这两个FUN代表plotyy不一定要用两个plot,比如下面的例子,一条曲线用plot,一条用semilogy x1=1::100; x2=x1;

matlab画图代码

用matlab的plot画图的几种用法 (2009-11-12 18:09:26) 转载▼ 标签: 分类:学习 matlab 绘图 plot 教育 1、设置图线宽度 set( haxis, 'LineWidth', 1.0 ); ----这是set函数,'LineWidth'就是axis的线宽度属性,其值默认为0.5,这里可以改成1.0了。 2、调整坐标轴上下限 set( haxis, 'XLim', [ 2 20 ] ); set( haxis, 'YLim', [ 2 20 ] );---调整坐标轴上下限的。Z轴,那同理set( haxis, 'ZLim', [ Zmin, %% Zmax ] ) 3、调整坐标轴上的标注数字 set( haxis, 'XTick', 2:1:20 ); set( haxis, 'YTick', 2:1:20 );----是调整坐标轴上那些标注出来的数字了,2:1:20意思是从2开始,每隔1标注一次,直到20为止。注意这里的2, 20最好和上面相应的XLim, YLim最大最小值一致。 4、MATLAB中提供的线型及颜色属性: 如:plot(x1,y1,'r-'),表示,用红色实线画出图形 线型说明标记符说明颜色说明 - 实线(默认) + 加号符r 红色 -- 双划线o 空心圆g 绿色 : 虚线* 星号 b 蓝色 :. 点划线. 实心圆 c 青绿色 x 叉号符m 洋红色 s 正方形y 黄色 d 菱形k 黑色 ^ 上三角形w 白色 v 下三角形 > 右三角形 < 左三角形 p 五角星 h 六边形

5、图形标题、轴标注、图形说明的设置 图名标注可用:title('xx关系图') axis([0,22,0,3]);---显示范围为:X轴从0-22,Y轴从0-3显示。 xlabel('电压(V)'),ylabel('电流(A)') 分别表示在X轴下标示电压(V),Y轴旁标示“电流(A)” legend('A曲线','B曲线','C曲线') 用于说明图中的曲线的说明,顺序和plot(x1,y1,x2,y2,x3,y3)的曲线1、2、3相同即可。 matlab 画折线图实例 (2010-07-05 16:55:02) 转载▼ 分类:科研软件_Matlab 标签: 杂谈 数据:某地区近50年雷暴发生次数(1957~2006 雷暴日): 画如下的年际变化图。 --------------------------------------------------------------------------------- % 将数据载入数组a中 a=[.....(省略)]; x=1957:2006; x=x'; % ma中放平均值: ma=zeros(50,1)+mean(a); plot(x,a,'k-o','linewidth',2,'markersize',4); axis ([1957 2006 10 60]); set (gca,'xtick',[1960 1965 1970 1975 1980 1985 1990 1995 2000 2005]);

MATLAB绘图函数

一、MA TLAB通用图形函数命令 有关命令行环境的一些操作: (1) clc 擦去一页命令窗口,光标回屏幕左上角 (2) clear 从工作空间清除所有变量 (3) clf 清除图形窗口内容 命令1 figure 功能创建一个新的图形对象。图形对象为在屏幕上单独的窗口,在窗口中可以输出图形。 用法figure 用缺省的属性值创建一个新的图形对象。 命令2 subplot 功能生成与控制多个坐标轴。把当前图形窗口分隔成几个矩形部分,不同的部分是按行方向以数字进行标号的。每一部分有一坐标轴,后面的图形输出于当前的部分中。 用法subplot(m,n,p) 将一图形窗口分成m*n个小窗口,在第p个小窗口中创建一坐标轴。则新的坐标轴成为当前坐标轴。若p为一向量,则创建一坐标轴,包含所有罗列在p 中的小窗口。 命令3 hold 功能保持当前图形窗口中的图形。该命令是决定是否在当前坐标轴中只能增加新的图形对象还是覆盖原有图形对象。 用法hold on 保留当前图形与当前坐标轴的属性值,后面的图形命令只能在当前存在的坐标轴中增加图形。但是,当新图形的数据范围超出了当前坐标轴的范围,则命令会自动地改变坐标轴的范围,以适应新图形。 hold off 在画新图形之前,重新设置坐标轴的属性为缺省值。 命令4 axis 功能坐标轴的刻度与外在显示 用法axis([xmin xmax ymin ymax]) 设置当前坐标轴的x-轴与y-轴的范围。 命令5 close 功能关闭指定的图形窗口。 用法close 关闭当前的图形窗口。 二、MA TLAB绘图参数控制 命令1 plot 功能这是最基本、最常用的绘图函数,用于绘制线性二维图。有多条曲线时,循环使用由坐标轴颜色顺序属性定义的颜色,以区别不同的曲线;之后再循环使用由坐标轴线型顺序属性定义的线型,以区别不同的曲线。

Matlab中使用Plot函数动态画图方法

%% %先画好,然后更改坐标系 %在命令行中使用 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 on while 1 if x>max(t) break; end x=x+0.1; axis([x,x+4*pi,-2,2]); %移动坐标系 pause(0.1); end %% % Hold On 法 % 此种方法只能点,或者分段划线 hold off t=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; axis([x x+2*pi -1.5 1.5]); grid on; for i=1:100 hold on t=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

%% %采用背景擦除的方法,动态的划点,并且动态改变坐标系% t,m 均为一行,并且不能为多行 t=0; m=0; p = plot(t,m,'*',... 'EraseMode','background','MarkerSize',5); x=-1.5*pi; axis([x x+2*pi -1.5 1.5]); grid on; for i=1:1000 t=0.1*i; %两个变量均不追加 m=sin(0.1*i); set(p,'XData',t,'YData',m) x=x+0.1; drawnow axis([x x+2*pi -1.5 1.5]); pause(0.1); end %% %采用背景擦除的方法,动态的划线,并且动态改变坐标系% 多行划线 t=[0] m=[sin(t);cos(t)] p = plot(t,m,... 'EraseMode','background','MarkerSize',5); x=-1.5*pi; axis([x x+2*pi -1.5 1.5]); grid on; for i=1:1000 t=[t 0.1*i]; %Matrix 1*(i+1) m=[m [sin(0.1*i);cos(0.1*i)]]; %Matrix 2*(i+1) set(p(1),'XData',t,'YData',m(1,:)) set(p(2),'XData',t,'YData',m(2,:)) drawnow x=x+0.1; axis([x x+2*pi -1.5 1.5]); pause(0.5);

实验三 MATLAB绘图(含实验报告)

实验三 MATLAB 绘图 一、实验目的 1.掌握二维图形的绘制。 2.掌握图形的标注 3.了解三维曲线和曲面图形的绘制。 二、实验的设备及条件 计算机一台(带有MATLAB7.0以上的软件环境)。 设计提示 1.Matlab 允许在一个图形中画多条曲线:plot(x1,y1,x2,y2,……) 指令绘制y 1 = f 1(x 1), y 2 = f 2 (x 2 )等多条曲线。Matlab 自动给这些曲线以不同颜色。标注可用text 函数。 2.绘图时可以考虑极坐标和直角坐标的转换。 3.三维曲线绘图函数为plot3,注意参考帮助中的示例。 三、实验内容 1.生成1×10 维的随机数向量a ,分别用红、黄、蓝、绿色绘出其连线图、 杆图、阶梯图和条形图,并分别标出标题“连线图”、“杆图”、“阶梯图”、“条形图”。 2、绘制函数曲线,要求写出程序代码。 (1) 在区间[0:2π]均匀的取50个点,构成向量t (2) 在同一窗口绘制曲线y1=sin(2*t-0.3); y2=3cos(t+0.5);要求y1曲 线为红色点划线,标记点为圆圈;y2为蓝色虚线,标记点为星号。 (3) 分别在靠近相应的曲线处标注其函数表达式。 3.将图形窗口分成两个绘图区域,分别绘制出函数: ???+-=+=1 352221x x y x y 在[0,3]区间上的曲线,并利用axis 调整轴刻度纵坐标刻度,使1y 在[0,12] 区间上,2y 在[-2,1.5]区间上。 4.用mesh 或surf 函数,绘制下面方程所表示的三维空间曲面,x 和y 的

取值范围设为[-3,3]。 10102 2y x z +-= 思考题: 1. 编写一个mcircle(r)函数,调用该函数时,根据给定的半径r ,以原点 为圆心,画一个如图所示的红色空心圆。(图例半径r=5);左图参考 polar 函数的用法,右图绘制圆形的参数方程为x=sin (t ),y=cos (t )。其中,t 的区间为0~2*pi ,步长为0.1。 2.(1)绘一个圆柱螺旋线(形似弹簧)图。圆柱截面直径为10,高度为5, 每圈上升高度为1。如左图所示。 (2)利用(1)的结果,对程序做少许修改,得到如右图所示图形。

MATLAB绘图功能大全

MATLAB绘图功能大全-CAL-FENGHAI.-(YICAI)-Company One 1

Matlab绘图 强大的绘图功能是Matlab的特点之一,Matlab提供了一系列的绘图函数,用户不需要过多的考虑绘图的细节,只需要给出一些基木参数就能得到所需图形,这类函数称为高层绘图函数。此外,Matlab还提供了直接对图形句柄进行操作的低层绘图操作。这类操作将图形的每个图形元素(如坐标轴、曲线、文字等)看做一个独立的对象,系统给每个对象分配一个句柄,可以通过句柄对该图形元素进行操作,而不影响其他部分。 本章介绍绘制二维和三维图形的高层绘图函数以及其他图形控制函数的使用方法,在此基础上,再介绍可以操作和控制各种图形对象的低层绘图操作。 一、二维绘图 二维图形是将平而坐标上的数据点连接起来的平面图形。可以采用不同的坐标系,如直角坐标、对数坐标、极坐标等。二维图形的绘制是其他绘图操作的基础。 (一)绘制二维曲线的基木函数 在Matlab中,最基本而且应用最为广泛的绘图函数为plot,利用它可以在二维平面上绘制出不同的曲线。 1.plot函数的基木用法 plot函数用于绘制二维平面上的线性坐标曲线图,要提供一组x 坐标和对应的y坐标,可以绘制分别以x和y为横、纵坐标的二维曲线。plot函数的应用格式

plot(x,y)其中x,y为长度相同的向量,存储x坐标和y坐标。 例52在[0,2pi]区间,绘制曲线 程序如下:在命令窗口中输入以下命令? ? x=0:pi/100:2*pi; ? y=2*exp*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为长度相同的向量,这是最常见、最基木的用法。实际应用中还有一些变化。 2.含多个输入参数的plot函数

MATLAB绘图总结

一、二维数据曲线图 1、MATLAB 最常用的画二维图形的命令是plot ,plot 函数的基本调用格式为:plot(x,y) 其中x 和y 为长度相同的向量,分别用于存储x 坐标和y 坐标数据。 例1:在[0,2 ]画)sin(x 。 生成的图形如下图1所示: 1 2 3 4 5 6 7 -1-0.8-0.6-0.4-0.200.20.40.60.81 图1 说明: (1)plot 函数的输入参数是矩阵形式时 A 、 当x 是向量,y 是有一维与x 同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数等于y 矩阵的另一维数,x 被作为这些曲线共同的横坐标。 B 、 当x,y 是同维矩阵时,则以x,y 对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 C 、 对只包含一个输入参数的plot 函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数;当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。 (2)含多个输入参数的plot 函数 调用格式为: plot(x1,y1,x2,y2,…,xn,yn) A 、当输入参数都为向量时,x1和y1,x2和y2,…,xn 和yn 分别组成一组向量对,每一组向量对的长度可以不同。每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。 B 、当输入参数有矩阵形式时,配对的x,y 按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 例2:如下所示的程序: x1=linspace(0,2*pi,100); x2=linspace(0,3*pi,100); x3=linspace(0,4*pi,100);

教你如何用matlab绘图(全面)

强大的绘图功能是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向量即可输出曲线:

实验五MATLAB的基本绘图方法

实验三MATLAB的基本绘图方法 一、实验目的 1.二维平面图形的绘制 2.三维立体图形的绘制 3.隐函数作图 二、实验地点:A404 三、实验日期: 四、实验内容 (一)二维平面图形的绘制 1、Plot的使用方法介绍 plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制 曲线。当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线,当x 为m×n 矩阵时,就由n 条曲线。 (2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。 (3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,…元素为纵坐标值绘制多条曲线。 例1:画出一条正弦曲线和一条余弦曲线。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2) 注:在绘制曲线图形时,常常采用多种颜色或线型来区分不同的数据组,MA TLAB 软件专门提供了这方面的参数选项,我们只要在每个坐标后加上相关字符串,就可实现它们的功能。具体参见教材。 2、图形修饰 MATLAB 软件为用户提供了一些特殊的图形函数,用于修饰已经绘制好的图形。 图形修饰函数表如下: 函数含义 grid on (/off) 给当前图形标记添加(取消)网络 xlable(‘string’) 标记横坐标 ylabel(‘string’) 标记纵坐标 title(‘string’) 给图形添加标题 text(x,y,’string’) 在图形的任意位置增加说明性文本信息 gtext(‘string’) 利用鼠标添加说明性文本信息 axis([xmin xmax ymin ymax]) 设置坐标轴的最小最大值 例2、给例1的图形中加入网络和标记。 >> x=0:pi/10:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2)

matlab绘图详解

一.二维图形(Two dimensional plotting) 1. 基本绘图函数(Basic plotting function):Plot, semilogx, semilogy, loglog, polar, plotyy (1). 单矢量绘图(single vector plotting):plot(y),矢量y的元素与y元素下标之间在线性坐标下的关系曲线。 例1:单矢量绘图 y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; plot(y) 可以在图形中加标注和网格, 例2:给例1 的图形加网格和标注。 y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; plot(y) title('简单绘图举例'); xlabel('单元下标'); ylabel('给定的矢量'); grid (2). 双矢量绘图(Double vector plotting):如x和y是同样长度的矢量, plot(x,y)命令将绘制y元素对应于x元素的xy曲线图。 例:双矢量绘图。 x=0:0.05:4*pi; y=sin(x); plot(x,y) (3). 对数坐标绘图(ploting in logarithm coordinate): x轴对数 semilogx, y轴对数semilogy, 双对数loglog, 例:绘制数组y的线性坐标图和三种对数坐标图。 y=[0 0.6 2.3 5 8.3 11.7 15 17.7 19.4 20]; subplot(2,2,1); plot(y); subplot(2,2,2); semilogx(y) subplot(2,2,3); semilogy(y); subplot(2,2,4); loglog(y) (4)极坐标绘图( Plotting in polar coordinate): polar(theta,rho) theta—角度, rho—半径 例:建立简单的极坐标图形。 t=0:.01:2*pi; polar(t,sin(2*t).*cos(2*t)) 2. 多重曲线绘图(Multiple curve plotting) (1)一组变量绘图(A group variable plotting) plot(x,y) (a) x为矢量,y为矩阵时plot(x,y)用不同的颜色绘制y矩阵中各行或列对应于x的曲线。例1: x=0:pi/50:2*pi; y(1,: )=sin(x); y(2,:) =0.6*sin(x); y(3, :)=0.3*sin(x); plot(x,y) (b) x为矩阵,y为矢量时绘图规则与(a)的类似,只是将x中的每一行或列对应于y进行绘图。。 例 2: 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=sin(x(1,: )); plot(x,y)

Matlab作图函数的总结与分析

高等理科教育2005年第6期(总第64期)Matlab作图函数的总结与分析+ 黄琼湘那斯尔江?吐尔逊 (tfi疆大学数学与系统科学学院,新疆乌鲁木齐830046) 摘要Matlab(MATrixLABoratory的简称)是CleverMoler博士用Fortran语言开发的科学计算工具。它已成为科学研究、工程计算、应用开发的重要工具。国外已将它作为理工科大学的必修课程,国内各大学也开始开设这门课程。Matlab有强大的作图功能,有兴趣的读者可参考文献【卜4’。本文对Matlab的作图函数进行分析和总结,以供教学参考和学生学习之用。 关键词Matlab数据可视化作图函数 中图分类号G642.0文献标识码A 一、Matl如作图函数的总结 Matlab提供了丰富的作图函数,有100个之多。在教学和学习中显得有点杂乱。我们先对它们进行总结和分类,并提炼出它们的共性和特性。 Matlab的作图函数从视角的维数上分有三类:一维作图函数、二维作图函数和三维作图函数。它们的代表分别是line、plot和plot3等函数。从类型上分大致有四类:通用作图函数(如plot函数等);专业作图函数(如contour函数、quiver函数等);动画制作函数(如movie、comet3等函数);图形修饰函数(如view等函数)。 Matlab所有的作图函数都可以通过查帮助获得它的功能和用法。这里我们把作图函数按类型分类,列出一些主要和常用的作图函数(见表1),以抓住重点。 作图函数虽然功能不同,但它们的调用格式是一致的。我们用GraphF来表示一般的作图函数,它们的调用格式如下: 1.GraphF(X,Y,S) 这是一、二维函数的作图格式。x和Y表示图形的数据点,s表示图形修饰参数组(可以缺省)。当x,Y都是顶点坐标时,GraphF(X,Y,S)画出以x,Y为端点,s为参数的线;当x是一组顶点坐标,而Y对应于X的函数值时,GraphF(X,Y,S)画出函数Y的二维图形。 2.GraphF(X,Y,Z,S) 这是三维函数的作图格式。z是x和Y的函数。x,Y以二维坐标形式表示函数值z的作图区域D,s表示图形修饰参数组(可以缺省)。GraphF(x,Y,Z,S)画出定义域为D的函数z的三维图形。 值得注意的是,Matlab的作图函数总是描绘数据点(X,Y)(在平面上)或(x,Y,z)(在空间中)的图形。前者视为Y的函数,而后者视为z的函数。函数GraphF在作图前数据点必须事先给定,在作图时函数GraphF将各数据点用光滑的曲线连接成图形。另外,X,Y,Z还 ÷收稿日期2004—02—19 资助项目新疆大学校基金“应用软件程序设计”重点课程建设项目资助 作者简介黄琼湘(1958)男,湖南衡阳人,教授,主要从事组合数学与图论、计算机算法研究

matlab图形处理工具

1、matlab函数bwareaopen──删除小面积对象 格式:BW2 = bwareaopen(BW,P,conn) 作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。 算法: (1)Determine the connected components. L = bwlabeln(BW, conn); (2)Compute the area of each component. S = regionprops(L, 'Area'); (3)Remove small objects. bw2 = ismember(L, find([S.Area] >= P)); 2、matlab函数bwarea──计算对象面积 格式:total = bwarea(BW) 作用:估计二值图像中对象的面积。 注:该面积和二值图像中对象的像素数目不一定相等。 3、matlab函数imclearborder──边界对象抑制 格式:IM2 = imclearborder(IM,conn) 作用:抑制和图像边界相连的亮对象。若IM是二值图,imclearborder将删除和图像边界相连的对象。默认情况conn=8。 注:For grayscale images, imclearborder tends to reduce the overall intensity level in addition to suppressing border structures. 算法: (1)Mask image is the input image. (2)Marker image is zero everywhere except along the border, where it equals the mask image. 4、matlab函数bwboundaries──获取对象轮廓 格式:B = bwboundaries(BW,conn)(基本格式) 作用:获取二值图中对象的轮廓,和OpenCV中cvFindContours函数功能类似。B是一个P×1的cell数组,P为对象个数,每个cell是Q×2的矩阵,对应于对象轮廓像素的坐标。 5、matlab函数imregionalmin──获取极小值区域 格式:BW = imregionalmin(I,conn) 作用:寻找图像I的极小值区域(regional maxima),默认情况conn=8。 Regional minima are connected components of pixels with a constant intensity value, and whose external boundary pixels all have a higher value. 6、matlab函数bwulterode──距离变换的极大值 格式:BW2 = bwulterode(BW,method,conn)

matlab画图技巧方法

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 图2 2.使用多个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); 图3 3.连接图形与变量(更新自变量或因变量的值) 用数据源属性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:20 y=exp(sin(t.*k)); refreshdata(h,'caller'); drawnow; pause(0.1); end 4.创建组(Hggroup)对象 将每个Hggroup子对象的HitTest属性值设置为off,使得单击任何子对象时,可以选择所有子对象。

(完整版)matlab的一些画图技巧

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标注数据点

legend 在右上角加解释 文字 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 on plot(x2,y2) hold off 第三种方法还是利用plot绘制,但代入矩阵:

第四讲 、Matlab绘图

第四讲 Matlab绘图 4.1 二维图形 4.2 数据分析图 4.3 三维图形 4.1 二维图形 1、基本图形的绘制 plot(x,y) 对向量x绘制向量y。以x为横坐标,y为纵坐标,按照坐标(xi ,yi)的有序排列绘制曲线。 plot(...,str) 使用字符串str指定的颜色和线型进行绘图。 例1:>> x=-pi:0.02*pi:pi; >> y=sin(x).*x.^2; >> plot(x,y) ezplot(f,xmin,xmax) 绘制函数f在区间[xmin,xmax]上的图形。如果省略xmin和xmax参数,区间将大概取在-2pi——2pi之间。由于ezplot命令使用算法来判断该函数变化显著的区间,因此区间的选取是不固定的。 例2:>> ezplot('sin(x).*x.^2') 2、图形控制 figure(gcf) 显示当前图形窗口。只键入figure命令则创建新的图形窗口; shg 显示当前图形窗口,等价于figure(gcf)。 hold on 保持当前图形。允许在当前图形状态下,使用同样的缩放比例加入另一个图形。 hold off 释放图形窗口,这样下一个图形将称为当前图形。这是缺省状态。 hold 在hold on和hold off之间进行切换。 subplot(m,n,p) 将图形窗口分割成m行n列,并设置p所指定的子窗口为当前窗口。子窗口按行由左至右,由上至下进行编号。这一命令在Matlab的当前版本中也被写作subplot(mnp)。axis…)用行向量中给出的值,设置坐标轴的最大和最小值。对于二维图形,该向量中含有元素: [xmin, xmax, ymin, ymax]。对于三维图形,是[xmin, xmax, ymin, ymax,zmin, zmax]。axis ~~ ~~的不同参数将给出不同的结果: 1.manual 固定坐标轴刻度。如果当前图形窗口为hold on状态,则后面的图形将采用同样的刻度 2.auto 把坐标轴刻度重新设置为缺省状态值。 3.equal 设置x轴和y轴为同样的刻度增量。 4.tight 以数据的大小为坐标轴的范围。 5.ij 翻转y轴,使得正数在下,负数在上。 6.xy 复位y轴,使正数在上。 7.off 坐标轴消隐。 8.on 绘制坐标轴。 title(txt) 在图形窗口顶端的中间位置输出字符串txt作为标题。 xlabel(txt) 在x轴下的中间位置输出字符串txt作为标注。 ylabel(txt) 在y轴边上的中间位置输出字符串txt作为标注。 zlabel(txt) 在z轴边上的中间位置输出字符串txt作为标注。 text(x,y,txt) 在图形窗口的(x,y)处写字符串txt。坐标x和y按照与所绘制图形相同的刻度给出。对于向量x和y,字符串txt写在(xi,yi)的位置上。如果t x t是一个字符串向量,即一个字符矩阵,且与x, y有相同的行数,则第i行的字符串将写在图形窗口的(xi,yi)的位置上。 gtext(txt) 通过使用鼠标或方向键,移动图形窗口中的十字光标,让用户将字串t xt放置在图形窗口中。当十字光标走到所期望的位置时,用户按下任意键或鼠标上的任意按钮,字符串将会写入在窗口中。

实验5 Matlab绘图操作实验报告

Tutorial 5 实验报告 实验名称:Matlab 绘图操作 实验目的: 1、 掌握绘制二维图形的常用函数; 2、 掌握绘制三维图形的常用函数; 3、 掌握绘制图形的辅助操作。 实验内容: 1. 设sin .cos x y x x ?? =+ ??+?? 23051,在x=0~2π区间取101点,绘制函数的曲线。 2. 已知: y x =21,cos()y x =22,y y y =?312,完成下列操作: (1) 在同一坐标系下用不同的颜色和线性绘制三条曲线; (2) 以子图形式绘制三条曲线; (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 3. 已知:ln(x y x x ≤=??+>??0102 ,在x -≤≤55区间绘制函数曲线。 4. 绘制极坐标曲线sin()a b n ρθ=+,并分析参数a 、b 、n 对曲线形状的影响。 5.在xy 平面内选择区域[][],,-?-8888, 绘制函数z =的三种三维曲面图。 6. 用plot 函数绘制下面分段函数的曲线。 ,(),,x x f x x x x ?+>? ==??+

8. 在同一坐标轴中绘制下列两条曲线。 (1).y x =-205 (2)sin()cos ,sin()sin x t t t y t t π=?≤≤? =?303 实验结果: 1. 2. (1)

(2)

(3)

相关文档
最新文档