MATLAB有很强的绘图功能,我们可以通过简单的代码画出一些直观而漂亮的代码。
在MATLAB中绘图首先需要设定x的范围,一般使用冒号来创建向量。
x = 0:pi/100:pi; &x 为0到pi之间以pi/100为步长的向量。
一、基本的绘图处理:
1、基本绘图常用函数:
(1) plot() 二维图形的绘制
要求:x和y需要有相同长度的向量
调用形式:
plot(x) :绘制出以x为纵坐标值的折线图,横轴值默认为1、2、3……。
plot(x,y): 绘制出以x向量为自变量的y函数在给出x的范围内的图像。
plot(y): 在给定的x范围内绘制出函数y的图像。
plot(x1,y1,……xn,yn):绘制多个X、Y对组的图,注意所有线条都使用相同的坐标区。(x1,x2,x3……xn都应相同)
plot(x,y'……') 此类形式方便对线形颜色等属性的修改。给形式在后面详述。
>> x = 0:pi/100:2*pi;
>> y = sin(x);
>> y1 = cos(x);
>> plot(x);
>> plot(x,y);
>> plot(x,y,x,y1);
(2) fplot() 符号函数的绘制
函数fplot可以根据函数的表达式自动调整自变量的范围,无须给函数赋值,直接生成能反应函数变化规律的图形,
调用格式:
fplot(y) : 在默认区间[-5 5](对于x)绘制由函数y = f(x)定义的曲线。
fplot(y,xinterval):将在指定区间绘图。将区间指定为[xmin xmax]形式的二元素向量。
fplot(funx,funy):在默认区间[-5 5](对于t)绘制由x = funx(t)和y = funy(t)定义的曲线。
fplot(funx,funy,interval):将在指定区间绘图。将区间指定为[tmin tmax]形式的二元素向量。
fplot( ,linespace) linespace 为线形,次函数可以修改所绘制图像曲线的线形。
>> fplot(@(x) sin(x)) %绘制匿名函数,使用句柄。
>> fplot(@(t)t.*sin(t),@(t)t.*cos(t)) %绘制参数方程,x =t*sin(t);y =t*cos(t);
&其它例子大致相同
注意该fplot函数中的y以及funx,funy所代表的函数,它们一般是以句柄的形式给出。
关于MATLAB中句柄的建立以及使用请参考:Matlab中函数句柄@的作用及介绍 – alexanderkun – 博客园www.cnblogs.com
(3)plotyy() 双Y轴图形绘制
该函数可以在一个图中创建有两个Y轴的图形。
调用格式:
plotyy(x1,y1,x2,y2): 绘制Y1对X1的图,在左侧显示y轴标签,并同时绘制Y2对X2的图,在右侧显示y轴标签。
plotyy(x1,y1,x2,y2,function):使用指定的绘图函数生成图形。
常见的function函数有plot、semilogx(半对数图中按照x轴的对数刻度绘制数据。)、semilogy(半对数图中使用y轴的对数刻度绘制数据。)、loglog(双对数图)、stem(绘制离散序列数据)
详细参见文末链接。
plotyy(x1,y1,x2,y2,'function1','function2'):使用function1(X1,Y1)绘制左轴的数据,使用function2(X2,Y2)绘制右轴的数据。
>> x = 0:pi/100:2*pi;
>> y1 = sin(x);
>> y2 = cos(x);
>> plotyy(x,y1,x,y2)
>> x = [0,10^6,7]
>> y3 = x;
>> y4 = exp(x);
>> plotyy(x,y3,x,y4,'semilogx')
(4) ezplot() 符号函数的绘制
ezplot()函数与fplot函数的功能基本相似,可以方便地绘制表达式或函数的图形。与fplot函数不同的是函数的表达式显示在图形的上方,同时对坐标轴可以不加任何限制作图。
调用格式:
ezplot(fun): 绘制表达式fun(x)在默认定义域 -2π
ezplot(fun,[xmin,xmax]):绘制fun(x)在以下域上的图形:xmin
对于隐函数,fun2(x,y):
ezplot(fun2) 在默认域 -2π < x < 2π 和 -2π < y < 2π 中绘制 fun2(x,y) = 0。
ezplot(fun2,[xymin,xymax]) 在 xymin < x < xymax 和 xymin < y < xymax 域中绘制 fun2(x,y) = 0。
ezplot(fun2,[xmin,xmax,ymin,ymax]) 在 xmin < x < xmax 和 ymin < y < ymax 域中绘制 fun2(x,y) = 0。
>> subplot(221)
>> ezplot('x^2+sin(x)');
>> subplot(222)
>> ezplot('x^2+sin(x)',[-2,8])
>> subplot(223) %subplot()函数可以在一张图幅上画出多个图像,如下图所示。
>> subplot(2,2,[3,4])
>> ezplot('x^2+sin(x)',[-2,5,-1,20])
对于半对数图,双对数图参考以下链接:半对数图 – MATLAB semilogx – MathWorks 中国ww2.mathworks.cn半对数图 – MATLAB semilogy – MathWorks 中国ww2.mathworks.cn双对数刻度图 – MATLAB loglog – MathWorks 中国ww2.mathworks.cn绘制离散序列数据 – MATLAB stem – MathWorks 中国ww2.mathworks.cn
本文参考:
清华大学出版社《MATLAB基础与可视化编程》
MATLAB MathWorks官网
—————————————————————————————
本文部分数据、代码和方法介绍来源于网络。
本文仅供大家参考学习,欢迎指正!
更多MATLAB学习资源请入QQ群:953314432。