当前位置: 首页 > article >正文

Matlab:二维绘图篇——不同坐标系下的绘图命令

目录

1.极坐标系下绘图:polar命令

实例——极坐标图形

实例——直角坐标与极坐标系图形

2.半对数坐标系下绘图:semilogx和semilogy

实例——半对数坐标系图形

3.双对数坐标系下绘图:loglog

实例——双对数坐标系绘图

4.双y轴坐标:plotyy

实例——双y轴坐标绘图


1.极坐标系下绘图:polar命令

         在Matlab中,polar命令用来绘制极坐标系下的函数图像。(通俗来说,极坐标系是一种确定平面上点位置的方式。它有一个固定的极点和一条极轴,用点到极点的距离(极径)以及从极轴逆时针转到该点的角度(极角)来表示点的位置。)

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(semilogy)命令的调用格式
调用格式说明
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轴坐标在实际中常用来比较两个函数的图像。

pootyy命令的调用格式
调用格式说明
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。这样可以在同一图形中清晰对比两个函数的变化趋势。


http://www.kler.cn/a/596726.html

相关文章:

  • OSCP准备靶场联系-Kioptrix 1
  • Docker逃逸
  • SAP Commerce(Hybris)PCM模块(一):商品批量导入导出
  • 【视频】OrinNX+Ubuntu20.04:移植OpenCV-4.11.0 with CUDA(含opencv_contrib )
  • 解决MySQL 5.6升5.7之后,非空有默认值的字段,报cannot be null Column ‘xxx‘的问题
  • 客户端通过域名访问,dns解析,nfs共享,访问nginx服务首页内容
  • 基于基于eFish-SBC-RK3576工控板的智慧城市边缘网关
  • 数据库设计-笔记2
  • 私有云(一)私有云基础架构
  • 蓝桥杯12届 砝码称重
  • C++中的stoi和to_string函数详解:字符串与数值的高效转换工具
  • tauri2程序单例模式实现,二次点击桌面图标显示之前最小化的程序并聚焦
  • Java多线程与高并发专题——为何每次用完 ThreadLocal 都要调用 remove()?
  • 使用 pnpm 安装依赖包后,如果将依赖包直接复制内网环境中,可能会出现无法使用的情况,且不能联网下载,如何解决?
  • 《Python深度学习》第七讲:生成式深度学习
  • 2025最新智能优化算法:鹰鱼优化算法(HawkFish Optimization Algorithm,HFOA)求解23个经典函数测试集,MATLAB
  • JavaScript基础-删除事件(解绑事件)
  • Rust + 时序数据库 TDengine:打造高性能时序数据处理利器
  • Cursor的五种高级用法
  • 异地多活架构演进详解