前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Matlab绘图

Matlab绘图

作者头像
十二惊惶
发布2024-02-28 20:08:12
1510
发布2024-02-28 20:08:12
举报

二维曲线

plot函数:

(1)plot函数的基本用法: plot(x,y)其中,x和y分别用于存储x坐标和y坐标数据。

代码语言:javascript
复制
%例一 绘制一条折线
x=[2.5,3.5,4,5];
y=[1.5,1,1.5];
plot(x,y)

(2)最简单的plot函数的调用格式: plot(x) 图形的横坐标,是x元素的索引。

代码语言:javascript
复制
y=[1.5,1,1.5];
plot(x)

当plot函数的参数x是复数向量时,则分别以该向量元素实部和虚部为横,纵坐标4绘制出一条曲线。

(3)plot(x,y)函数参数的变化形式

当x是向量,y是矩阵时

  1. 如果矩阵y的列数等于x的长度,则以向量x为横坐标,以y的每个行向量为纵坐标绘制曲线,曲线的条数等于y的行数
  2. 如果矩阵y的行数等于x的长度,则以向量x为横坐标,以y的每个列向量为纵坐标绘制曲线,曲线的条数等于y的列数。

当x、y是同型矩阵时

以x、y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数

(4)含多个输入参数plot函数plot(x1,y1,x2,y2,…,xn,yn)

其中,每一个向量对构成一组数据点的横、纵坐标,绘制一条曲线。

(5)含选项的plot函数 plot(x,y,选项)

fplot函数:

x往往采取等间隔采样,如果在函数随着自变量的变化未知或者在不同区间的函数频率特性差别大,如果采用plot函数时自变量的采样间隔设置不合理,则无法反映函数的变化趋势。

如何解决这个问题呢?——fplot可根据参数函数的变化特性,自适应地设置采样间隔。

(1)fplot函数的基本用法: fplot(f,lims,选项)

其中,f代表一个函数,通常采用函数句柄的形式。lims为x轴的取值范围,用二元向量[xmin,xmax]描述,默认值为[-5,5]。选项定义与plot函数相同。

(2)双输入函数参数的用法 fplot(funx, funy, tlims,选项) 其中,funx、funy代表函数,通常采用函数句柄的形式。tlims为参数函数funx和funy的自变量的取值范围,用二元向量[tmin,tmax]描述。

绘制图形的辅助操作

给图形添加标注

  1. title函数
    • title函数的基本用法: title(图形标题)
    • 在图形标题中使用Latex格式控制符: \bf 加粗 \it 斜体 \rm 整体
    • 含属性设置的title函数 title(图形标题,属性名,属性值) Color属性:用于设置图形标题文本的颜色。 FontSize属性: 用于设置标题文字的字号。
  2. xlabel函数和ylabel函数 xlabel(x轴说明) ylable(y轴说明)
  3. text函数和gtext函数: text(x,y,说明) gtext(说明) gtext函数没有坐标参数,执行命令时,十字光标跟随鼠标移动,单击鼠标,即可将说明放置在十字光标处。
  4. legend函数 legend(图例1,图例2,…)

坐标控制

axis函数

  • axis([xmin,xmax,ymin,ymax,zmin,zmax])
  • axis的其他用法: axis equal: 纵、横坐标采用等长刻度 axis square: 产生正方形坐标系(默认为矩形) axis auto: 使用默认设置 axis off: 取消坐标轴 axis on: 显示坐标轴 axis equal后,如:x轴0到1长度等于y轴0到1长度。消除因为x轴和y轴刻度长不等带来的图像变形。

给坐标系加网格和边框(grid)

grid on:控制显示网格线 grid off:控制不显示网格线 grid:在两种状态之间进行切换

box函数 box on,box off,box。用法同grid。

图形保持(hold)

在已经存在的图形叠加图形

代码语言:javascript
复制
hold on   % 控制保持原有图形
hold off  % 控制刷新图形窗口
hold      % 两种模式间切换

d 图形窗口的分割(subplot)

子图:同一图形窗口中的不同坐标系下的图形称为子图。

subplot函数: subplot(m,n,p) 其中,m,n指定将图形窗口分成m * n个绘图区,p指定当前活动区。

代码语言:javascript
复制
x=linspace(0,2*pi,60):
subplot(2,2,1) %将整个坐标图分成两行两列,按行数的第一个子图
plot(x,sin(x)-1);
title('sin(x)-1');axis([0,2*pi,-2,0])
subplot(2,1,2) %将整个坐标图分成两行1列,按行数的第2个子图
plot(x,cos(x)+1);
title('cos(x)+1');axis([0,2*pi,0,2])
subplot(4,4,3) %将整个坐标图分成4行4列,按行数的第3个子图
plot(x,tan(x));
title('tan(x)');axis([0,2*pi,-40,40])
subplot(4,4,8) %将整个坐标图分成4行4列,按行数的第8个子图
plot(x,cot(x));
title('cot(x)');axis([0,2*pi,-35,35])

其他形式的二维图形

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

对数坐标图(semilogx;semilogy;loglog)

semilogx: x使用常用对数刻度,y为线性刻度

semilogy: y使用常用对数刻度,x为线性刻度

loglog:x,y都使用常用对数刻度

极坐标图(polar)

代码语言:javascript
复制
polar(theta,rho,选项) %其中,theta为极角,rho为极径,选项的内容与plot函数相同。

统计图

条形类图形(bar、barh;hist、rose)

条形图:

bar函数: 竖直条形图,bar(y,style)其中y是数据,选项style用于指定分组排列模式。grouped簇状分组,stacked堆积分组。 bar(x,y,style)其中,x存储横坐标,y存储数据

barh函数:水平条形图 使用方式与bar函数类型

直方图:

hist函数:直角坐标系

hist(y),hist(y,x)其中,参数y是要统计的数据,x用于指定区间的划分方式。

x:用于设置统计区间的划分方式,若统计数据为标量,则统计数据均分为x个小区间,若x是向量,则x中的每一个数指定分组的中心值,元素的个数为数据分组数,x缺省时,默认按10个等分区间进行统计。

rose函数:极坐标系

rose(theta,x) 其中,参数theta用于确定每一区间与原点的角度,选项x用于指定区间的划分方式。

theta:是一个向量,绘图时将圆划分为若干个角度相等的扇形区域,每个扇形高度为落入这个扇形区域的theta个数。如果x是标量,则将0到2pi划分为x个扇形区域,默认20。

代码语言:javascript
复制
%  绘制高斯分布数据在极坐标下的直方图。
y=randn(500,1);
theta=y*pi;
rose(theta)
title("在极坐标下的直方图")

面积类图形(pie;area)

  • 1扇形图 pie函数 pie(x,explode) 其中,参数x存储待统计数据,选项explode控制图块的显示模式
  • 2面积图 area函数 area(x, y): 该函数以参数x和y绘制面积图。如果x和y为向量,则相当于函数plot(x, y),并将0到y之间进行了填充。如果参数y为矩阵,则将y的每一列绘制面积图并进行叠加。

散点类图形(scatter;stairs;stem)

  • scatter函数: 散点图 scatter(x,y,选项,’filled’)参数x,y用于定位数据点,选项用于指定线型,颜色,数据点标记。 filed:填充数据点标记
  • stairs函数: 阶梯图
  • stem函数: 杆图

矢量图形(compass;feather;quiver)

  1. compass: compass(x,y):x,y是n维向量,显示n个箭头,箭头的起点为原点,箭头位置为(x(i),y(i)). compazz(z):参量z为n维复数向量,命令显示n个箭头,箭头起点为原点,箭头位置为(real(z),image(z))。
  2. feather: feather(x,y) :函数绘制由向量参量x与y构成的速度向量,沿水平轴方向,从均匀间隔点以箭头发射出来 feather(z) :函数绘制羽毛图。参量z是一个复数,则feather(z)相当于compass(real(z),imag(z));
  3. quiver函数调用格式: quiver(x, y, u, v)其中,(x, y)指定矢量起点,(u, v)指定矢量终点。

三维曲线

plot3函数

(1)plot3函数的基本用法:plot3(x,y,z)其中,参数x、y、z组成一组曲线的坐标。

(2)含多组输入参数的plot3函数: plot3(x1,y1,z1,x2,y2,z2,…,xn,yn,zn)

每一组x,y,z向量构成 一组数据点的坐标,绘制一条曲线

(3)含选项的plot3函数: 选项用于指定曲线的线型,颜色和数据点标记。

fplot3函数

代码语言:javascript
复制
fplot3(funx,funy,funz,tlims)

其中,funx、funy、funz代表定义曲线x、y、z坐标的函数,通常采用函数句柄的形式。tlims为参数函数自变量的取值范围,用二元向量[tmin,tmax]描述﹐默认为[-5,5]。

三维曲面

平面网格数据的生成

(1)利用矩阵运算生成

(2)利用meshgrid函数生成,[X,Y]=meshgrid(x,y);其中,参数x、y为向量,存储网格的X,Y为矩阵

绘制三维曲面的mesh函数和surf函数

  1. 基本调用格式
代码语言:javascript
复制
mesh(x,y,z,c)
surf(x,y,z,c)

其中x、y是网络坐标矩阵,z是网格点上的该网格点上的高度矩阵,c用于指定在不同高度下的曲面颜色。

  1. 其他调用格式: mesh(z,c) surf(z,c)

当x,y省略时,z矩阵的第2维下标当作x轴坐标,z矩阵的第1维下标当作y轴坐标。

  • 带等高线的三维网格曲面函数meshc
  • 带底座的三维网格曲面函数meshz
  • 具有等高线的曲面函数surfc
  • 具有光照效果的曲面函数surfl

标准三维曲面(sphere;cylinder;peaks)

(1) sphere函数 [x,y,z]=sphere(n)

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

面和柱面。 sphere将产生3个n+1阶的方阵,可以绘制出圆心位于原点,半径为1的单位球体,如果调用该函数时,不带输出参数,则直接绘制球面,n决定球面圆滑程度,默认20,n越大,越光滑。 cyinder函数的R是一个向量,存放柱面各个等间隔高度上的半径,n表示在圆柱圆周上有n个间隔点,默认20个,n越大,越滑。如果R是一个标量,则生成一个圆柱面。

(3)peaks函数

peak(n):参数为一个标量,生成n阶方阵peaks(V)、peaks(x,y):若参数为向量或网格矩阵代入f(x,y),计算得到高度矩阵,用peaks生成的矩阵,可以用于mesh、surf的参数绘制多峰函数曲面图。

fsurf函数和fmesh函数

图形修饰处理

视点处理(view)

视点可由方位角和仰角表示。

色彩处理(colormap;shading)

  1. 颜色的向量(RGB)表示:[0 0 1]:蓝色 ,[1 0 0]:红色 , [0 1 0]:绿色 []
  2. 色图:(Colormap)

图形的裁剪处理

将图形中需要裁剪部分对应的函数值设置成NaN,这样在绘制图形时,函数值为NaN的部分将不显示出来,从而达到对图形进行裁剪的目的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二维曲线
    • plot函数:
      • fplot函数:
      • 绘制图形的辅助操作
        • 给图形添加标注
          • 坐标控制
          • 其他形式的二维图形
            • 其他坐标系下的二维曲线图
              • 统计图
                • 矢量图形(compass;feather;quiver)
                • 三维曲线
                  • plot3函数
                    • fplot3函数
                    • 三维曲面
                      • 平面网格数据的生成
                        • 绘制三维曲面的mesh函数和surf函数
                          • 标准三维曲面(sphere;cylinder;peaks)
                            • fsurf函数和fmesh函数
                            • 图形修饰处理
                              • 视点处理(view)
                                • 色彩处理(colormap;shading)
                                  • 图形的裁剪处理
                                  相关产品与服务
                                  对象存储
                                  对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                                  领券
                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档