您的位置:首页 > 编程语言 > MATLAB

Matlab绘制曲线

2014-07-08 11:07 176 查看
当年学习MATLAB主要目的是被她的强大画图功能所吸引的,自那以后就开始了我漫长的自学历程。刚开始我只是认为是画图,而不是绘图。俩者差别很大!

先从介绍都有什么绘图功能开始吧。

plot X-Y方向绘图

loglog X-Y方向的双对数绘图

semilogx X-Y方向的半对数绘图(X轴取对数)

semilogy X-Y方向的半对数绘图(Y轴取对数)

ploar 极坐标绘图

mesh 三维网状曲面图形

bar 直方图

plot命令产生X-Y方向绘图。一旦掌握了plot命令,对数坐标、极坐标下的绘图只要用loglog、semilogx、semilogy、polar命令代替plot即可。所以掌握plot功能就对绘图功能掌握4/7啦!~~

plot函数

plot命令最简单的调用格式是只包含一个输入参数:

[b]plot(x)[/b]

在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。

plot函数的基本调用格式为:

plot(x,y)

其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。当然还是用例子给大家介绍。

t=0:0.1:2*pi;

x=t.*sin(3*t);

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

plot(x,y);

复制代码



画出的图形如上,名令里再一次出现.*,说好这个开另一个篇幅讲的。

绘制多根二维曲线,方法较为简单,它采用plot 的多重变量,即:

plot ( x1, y1, x2, y2, ……, xn, yn)

这里x1, y1, x2, y2, ……, xn, yn等代表一些行向量对或列向量对。再次举例:

x1=linspace(0,2*pi,100);

x2=linspace(0,3*pi,100);

x3=linspace(0,4*pi,100);

y1=sin(x1);

y2=1+sin(x2);

y3=2+sin(x3);

x=[x1;x2;x3]';

y=[y1;y2;y3]';

plot(x,y,x1,y1-1)

复制代码



一旦图形在屏幕上显示出来,我们也有俩种方法对图片进行后处理。首先说第一种是采用下面命令给它加标记、标题或加坐标框图:

title
图形标题

xlabel X轴的标注

ylabelY 轴的标注

text 标注数据点

grid 画坐标线

还是举简单的例子个大家:在0≤x≤2p区间内,绘制曲线y1=2e-0.5x和y2=cos(4πx),并给图形添加图形标注。

x=0:pi/100:2*pi;

y1=2*exp(-0.5*x);

y2=cos(4*pi*x);

plot(x,y1,x,y2)

title('x from 0 to 2{\pi}'); %加图形标题

xlabel('Variable X'); %加X轴说明

ylabel('Variable Y'); %加Y轴说明

text(0.8,1.5,'曲线y1=2e^{-0.5x}'); %在指定位置添加图形说明

text(2.5,1.1,'曲线y2=cos(4{\pi}x)');

legend('y1','y2') %加图例

复制代码



坐标控制

axis函数的调用格式为:

axis([xmin xmax ymin ymax zmin zmax])

axis函数功能丰富,常用的格式还有:

axis equal:纵、横坐标轴采用等长刻度。

axis square:产生正方形坐标系(缺省为矩形)。

axis auto:使用缺省设置。

axis off:取消坐标轴。

axis on:显示坐标轴。

给坐标加网格线用grid命令来控制。grid on/off命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。

给坐标加边框用box命令来控制。box on/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。

当让第二种放发呢是利用图形的可视化编辑。MATLAB 6.5以上版本在图形窗口中提供了可视化的图形编辑工具,利用图形窗口菜单栏或工具栏中的有关命令可以完成对窗口中各种图形对象的编辑处理。

在图形窗口上有一个菜单栏和工具栏。菜单栏包含File、Edit、View、Insert、Tools、Window和Help共7个菜单项,工具栏包含11个命令按钮。



比较俩中方法,第一种方法的缺点是需要记住好几个命令,而第二种是傻瓜式的编辑器所以非常容易对图片进行编辑,而第一种方法的优点就是你写的程序命令需要改变函数或者别人运行你的程序都是你需要的图片但是第二种方法就需要你再一次对图片进行编辑了。显而易见,第一种方法是一劳永逸的方法。而且你经常绘制图片,自然而然这些命名都记住了。所以可视化编辑器是6.5版本以后才出来的。

线型和标注方式

线型

画图时,如果不指明使用什么线型,则一般Matlab按连续线型以不同颜色给出图形。当然,也可以人为地选用不同的线型进行画图。
一般常采用的线型如下:

线型 实线— 虚线-- 点虚线: 点划线-.

点型 点号. 加号+ 星号* 圆圈o x号x

一般格式如下:

plot (t,y(1,:)'o',',t,y(2,:),'*')

颜色

曲线颜色可以人为规定,一般常用颜色如下:

红色 (red) r

绿色 (green) g

蓝色 (blue) b

白色 (white) w

我们可以使用如下格式调用:

plot (t,y(1,:)'og',',t,y(2,:),'*r')

多图形输出

subplot函数的调用格式为:

subplot(m,n,p)

该函数将当前图形窗口分成m×n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区。在每一个绘图区允许以不同的坐标系单独绘制图形。
老方法,再次用简单的一个例子把上面的表达出来。

x=0:pi/10:2*pi;

y=2*sin(x);

subplot(2,2,1);

bar(x,y,'g');

title('bar(x,y,''g'')');

axis([0,7,-2,2]);

subplot(2,2,2);

stairs(x,y,'b');

title('stairs(x,y,''b'')');

axis([0,7,-2,2]);

subplot(2,2,3);

stem(x,y,'k');

title('stem(x,y,''k'')');

axis([0,7,-2,2]);

subplot(2,2,4);

fill(x,y,'y');

title('fill(x,y,''y'')');

axis([0,7,-2,2]);

复制代码



漂亮吗??这不是画图,这是绘图!! 还有更漂亮的等着我们呢,继续!下面开始我们就如漂亮的三维画面了,大家擦亮眼睛!!

三维图形

三维曲线

plot3函数与plot函数用法十分相似,其调用格式为:

plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n)

其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。



渐渐的是不是开始有意思了呢??

三维曲面

1.产生三维数据

在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。其基本格式为:

x=a:d1:b;

y=c:d2:d;

[X,Y]=meshgrid(x,y);


语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。

2.绘制三维曲面的函数

surf函数和mesh函数的基本格式为:

mesh(x,y,z,c)

surf(x,y,z,c)


一般情况下,x,y,z是维数相同的矩阵。x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。

当然得用例子来说明了。绘制三维曲面图z=sin(x+sin(y))-x/10。

[x,y]=meshgrid(0:0.25:4*pi);

z=sin(x+sin(y))-x/10;

mesh(x,y,z);

axis([0 4*pi 0 4*pi -2.5 1]);

复制代码



给力,绝对的给力!!! 如果2维的曲线很多人都能画出来的话,那么三维这么几行就轻松搞定的事,以前想象过没有??

此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。其用法与mesh类似,不同的是meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。

3.标准三维曲面

sphere函数的调用格式为:

[x,y,z]=sphere(n)

cylinder函数的调用格式为:

[x,y,z]= cylinder(R,n)

MATLAB还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示。



MATLAB入门与实战确实是一本好书,大多数例子都是里面的。而且很多例子都是非常实用型比较强。在初级入门绘图里掌握plot命令和mesh命令就够了。而且我非常喜欢matlab的绘图命令所以今天写的比较多!!继续,简单介绍一下剩下的几个matlab命令。

其他二维图形

其他坐标系下的二维数据曲线图

1.对数坐标图形

MATLAB提供了绘制对数和半对数坐标曲线的函数,调用格式为:

semilogx(x1,y1,选项1,x2,y2,选项2,…)

semilogy(x1,y1,选项1,x2,y2,选项2,…)

loglog(x1,y1,选项1,x2,y2,选项2,…)

2.极坐标图

polar函数用来绘制极坐标图,其调用格式为:

polar(theta,rho,选项)

其中theta为极坐标极角,rho为极坐标矢径,选项的内容与plot函数相似。

3.二维统计分析图

在MATLAB中,二维统计分析图形很多,常见的有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:

bar(x,y,选项)

stairs(x,y,选项)

stem(x,y,选项)

fill(x1,y1,选项1,x2,y2,选项2,…)

其他三维图形

上面刚刚提到条形图、杆图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是bar3、stem3、pie3 和fill3。

bar3函数绘制三维条形图,常用格式为:

bar3(y)

bar3(x,y)

stem3函数绘制离散序列数据的三维杆图,常用格式为:

stem3(z)

stem3(x,y,z)

pie3函数绘制三维饼图,常用格式为:

pie3(x)

fill3函数等效于三维函数fill,可在三维空间内绘制出填充过的多边形,常用格式为:

fill3(x,y,z,c)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: