目录
1.极坐标系下绘图:polar命令
实例——极坐标图形
实例——直角坐标与极坐标系图形
2.半对数坐标系下绘图:semilogx和semilogy
实例——半对数坐标系图形
3.双对数坐标系下绘图:loglog
实例——双对数坐标系绘图
4.双y轴坐标:plotyy
实例——双y轴坐标绘图
1.极坐标系下绘图:polar命令
在Matlab中,polar命令用来绘制极坐标系下的函数图像。(通俗来说,极坐标系是一种确定平面上点位置的方式。它有一个固定的极点和一条极轴,用点到极点的距离(极径)以及从极轴逆时针转到该点的角度(极角)来表示点的位置。)
调用格式 | 说明 |
polar(theta,rho) | 在极坐标中绘图,theta的元素代表弧度,rho代表极坐标失径 |
polar(theta,rho,s) | 在极坐标中绘图,参数s的内容与plot命令相似 |
实例——极坐标图形
在直角坐标系与极坐标系下画出此函数的图像:r=|sintcost|
>> t=0:0.1:4*pi
r=abs(sin(t).*cos(t));
polar(t,r)
这段MATLAB代码的主要目的是在极坐标系中绘制特定函数的图像。首先,代码使用冒号运算符生成了一个从0到4π、步长为0.1的向量t,代表极角。其次,计算每个`t`对应的极径r,r是sin(t)与cos(t)乘积的绝对值,确保极径非负。最后,使用polar函数,以t为极角、r为极径绘制极坐标曲线。在这需要注意的是,在较新的MATLAB版本中,建议(可以通过调整步长和角度范围来改变图形的精度与显示范围)使用polarplot函数替代polar函数。
实例——直角坐标与极坐标系图形
在直角坐标系与极坐标系下画出此函数的图像:
>> t=linspace(0,24*pi,1000);
r=exp(sin(t))-2*sin(4.*t)+(cos(t./5)).^6;
subplot(2,1,1),plot(t,r)
subplot(2,1,2),polar(t,r)
(1)linspace
函数用于生成一个从 0
到 24*pi
的包含 1000
个等间距元素的向量 t,
这个向量通常可以表示时间或者角度等连续变化的变量;
(2)
生成的时间向量 t
计算对应的极径 r
。这里的 r
是一个关于 t
的函数,通过指数函数 exp
、正弦函数 sin
和余弦函数 cos
组合而成;
(3)subplot(2, 1, 1)
将绘图窗口划分为 2
行 1
列的子图布局,并选择第 1
个子图。plot(t, r)
在该子图中绘制 t
和 r
的关系图,即 r
随 t
变化的曲线;
(4)subplot(2, 1, 2)
选择第 2
个子图。polar(t, r)
在该子图中以极坐标的方式绘制图形,其中 t
表示极角,r
表示极径;
这个图在直角坐标系下的图像,用pol2cart命令,可以将相应的坐标数据点转化成直角坐标系下的数据点:
>> [x,y]=pol2cart(t,r);
figure
plot(x,y)
2.半对数坐标系下绘图:semilogx和semilogy
semilogx用来绘制x轴为半对数坐标的曲线;semilogy命令用来绘制y轴为半对数左边的曲线。
调用格式 | 说明 |
semilogx(X) | 绘制以10为底对数刻度的x轴和线性刻度的y轴的半对数坐标曲线。若`X`是实矩阵,则按列绘制每列元素值相对其下标的曲线图;若为复矩阵,则等价于`semilogx(real(X),imag(X))`命令 |
semilogx(X1,Y1,...) | 对坐标对`(Xi,Yi)`(`i=1,2,...`),绘制所有的曲线。如果`(Xi,Yi)`是矩阵,则以`(Xi,Yi)`对应的行或列元素为横纵坐标绘制曲线 |
semilogx(X1,Y1,s1,...) | 对坐标对`(Xi,Yi)`(`i=1,2,...`),绘制所有的曲线,其中`si`是控制曲线线型、标记以及色彩的参数 |
semilogx( ...,'PropertyName',PropertyValue,...) | 对所有用`semilogx`命令生成的图形对象的属性进行设置 |
h = semilogx(...) | 返回`line`图形句柄向量,每条线对应一个句柄 |
实例——半对数坐标系图形
比较函数y=10的x幂次方在半对数坐标系与直角坐标系下的图像
>> close all
x=0:0.01:1;
y=10.^x;
subplot(1,2,1),semilogy(x,y)
subplot(1,2,2),plot(x,y)
代码先执行close all
关闭所有已打开的图形窗口,避免干扰。接着生成从 0 到 1、步长为 0.01 的向量x
,并计算y = 10.^x
。之后利用subplot
将绘图窗口分为 1 行 2 列,在第一个子图中用semilogy
函数绘制,其y
轴为对数刻度,能更好呈现指数增长;在第二个子图中用plot
函数以线性坐标绘制。通过这种方式,可清晰看到指数函数在不同坐标体系下的特点,便于对函数性质进行分析。
3.双对数坐标系下绘图:loglog
实例——双对数坐标系绘图
>> close all
x=0:0.01:1
y=exp(x)+exp(-x);
subplot(1,2,1),loglog(x,y)
subplot(1,2,2),plot(x,y)
4.双y轴坐标:plotyy
双y轴坐标在实际中常用来比较两个函数的图像。
调用格式 | 说明 |
plotyy(x1,y1,x2,y2) | 用左边的y轴画出x1对应于y1的图,用右边的y轴画出x2对应于y2的图 |
`plotyy(x1,y1,x2,y2, 'function') | 使用字符串'function'指定的绘图函数产生每一个图形,'function'可以是plot、semilogx、semilogy、stem或任何满足h = function(x,y)的MATLAB函数 |
plotyy(x1,y1,x2,y2, 'function1', 'function2') | 使用function1(x1,y1)为左轴画出图形,用function2(x2,y2)为右轴画出图形 |
实例——双y轴坐标绘图
>> close all
x=linspace(-2*pi,2*pi,200);
y1=exp(-x).*cos(4*pi*x);
y2=2*exp(-0.5*x).*cos(2*pi*x);
plotyy(x,y1,x,y2,'plot')
这段MATLAB代码中,首先,close all语句关闭所有已打开的图形窗口,防止干扰。接着,使用linspace函数生成从 - 2π到2π的200个等间距的点作为自变量x。然后,分别计算两个函数y1 = exp(-x).*cos(4*pi*x)和y2 = 2*exp(-0.5*x).*cos(2*pi*x)的值。最后,利用plotyy函数,以x为共同的横坐标,分别绘制`y1`和y2对应的曲线,并指定绘图方式为plot。这样可以在同一图形中清晰对比两个函数的变化趋势。