MATLAB画图——基础篇

article/2025/11/7 4:38:37

MATLAB画图——基础篇

在MATLAB使用的过程中,学会画图是一项必要的技能。在这里,我总结了部分简单的画图函数,同时附上代码(本文中的程序为了方便给出的数据都很简单,大家可以自己去尝试其他数据)。这对刚刚开始接触MATLAB的小白来说,我认为还是很有帮助的。

文章目录

  • 一、plot()函数
    • 1.二维图形
      • (1)绘图选项
      • (2)图形的辅助标注和窗口的分割
      • (3)格式
    • 2.三维图形
      • (1)格式
      • (2)网格矩阵生成函数:meshgrid
      • (3)mesh函数
      • (4)surf函数
  • 二、特殊图形
    • 1.对数坐标图
    • 2.极坐标图
    • 3.条形图
    • 4.面积图
    • 5.饼状图
    • 6.双y轴
    • 7.罗盘图
    • 8.羽毛图
    • 9.矢量图
    • 10.散点图
  • 总结
  • 参考

一、plot()函数

1.二维图形

(1)绘图选项

线型颜色标记符号
-实线b蓝色.点s方块
:虚线g绿色o圆圈d菱形
.-点划线r红色x叉v朝下三角符号
-双划线c青色+加号^朝上三角符号
m品红*星号<朝左三角符号
y黄色>朝右三角符号p五角星
k黑色h六角星
w白色

(2)图形的辅助标注和窗口的分割

title(图形说明)
xlabel(x轴说明)
ylabel(y轴说明)
text(x,y图形说明)——在x,y轴处添加文字说明
legend(图例一,图例二,…)
subplot(m,n,p)——将绘图区域分割成m*n个子区域,并按照行从左至 右,从上至下依次编号。p表示第p个绘图子区域。

注意:如果是要两个图画到同一个坐标里面,则在两个plot函数之间添加一行hold on

(3)格式

plot(x)——缺省自变量绘图格式
plot(x,y)——基本格式。以y(x)的函数关系作图。如果y是n*m的矩 阵,则x为自变量,作出m条曲线。
plot(x1,y1,x2,y2,…,xn,yn)——多条曲线绘图格式
plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn,选项n)——含选项的绘图格式
图一

x1=[1 2 3 4 5 6 7 8 9];
x2=[2 4 6 8 10 12 14 16 18];
y1=[1 4 9 16 25 36 49 64 81];
y2=[18 16 14 12 10 8 6 4 2];
subplot(4,1,1);plot(x1);title('例一');xlabel('自变量');ylabel('因变量');
subplot(4,1,2);plot(x1,y1);title('例二');xlabel('自变量');ylabel('因变量');
subplot(4,1,3);plot(x1,y1,x2,y2);title('例三');xlabel('自变量');ylabel('因变量');
subplot(4,1,4);plot(x1,y1,'m+',x2,y2,'c*');title('例四');xlabel('自变量');ylabel('因变量');

2.三维图形

(1)格式

plot3(x1,y1,z1,‘选项一’,x2,y2,z1,‘选项二’,…)
x,y,z是长度相同的向量:一条曲线
x,y,z是维度相同的矩阵:多条曲线

(2)网格矩阵生成函数:meshgrid

[X,Y]=meshgrid(x,y)
x,y是给定的向量,X,Y是网格划分后得到的网格矩阵
注意,这个函数用来生成网格矩阵,不是直接用来画图的,配合mesh使用。

(3)mesh函数

mesh(X,Y,Z,C)
X,Y:网格坐标矩阵
Z:网格点上的高度矩阵
C:确定不同高度下的颜色范围

meshc:在mesh基础上增加等高线。
meshz:在mesh基础上增加底座。

(4)surf函数

surf(X,Y,Z,C)——绘制由矩阵X,Y,Z确定的着色的三维表面图,参数含义同mesh
surfc——与surf相同,在此基础上增加等高线
surfl——与surf相同,在此基础上增加光照效果
注意:使用surfl的时候,C为一个二维或者三维向量。表示光源与曲面之间的方位。

x1=[1 2 3 4 5 6 7 8 9];
x2=[2 4 6 8 10 12 14 16 18];
z1=[1 2 3 4 5 6 7 8 9];
y1=[1 4 9 16 25 36 49 64 81];
y2=[18 16 14 12 10 8 6 4 2];
z2=[1 2 3 4 5 6 7 8 9];
Z=[1 2 3 4 5 6 7 8 9;2 3 4 5 6 7 8 9 10;3 4 5 6 7 8 9 10 11;4 5 6 7 8 9 10 11 12;5 6 7 8 9 10 11 12 13;6 7 8 9 10 11 12 13 14;7 8 9 10 11 12 13 14 15;8 9 10 11 12 13 14 15 16;9 10 11 12 13 14 15 16 17];
s=[40;60];
subplot(2,3,1);plot3(x1,y1,z1,x2,y2,z2);
subplot(2,3,2);[X,Y]=meshgrid(x1,y1);mesh(X,Y,Z,Z);
subplot(2,3,3);meshc(X,Y,Z,Z);
subplot(2,3,4);meshz(X,Y,Z,Z);
subplot(2,3,5);surfc(X,Y,Z,Z);
subplot(2,3,6);surfl(X,Y,Z,s);

图二

二、特殊图形

1.对数坐标图

semilogx(x,y):x轴对数刻度,y轴线性刻度。
semilogy(x,y):x轴线性刻度,y轴对数刻度。
loglog(x,y):x,y都是对数刻度。
图三

x=[1 2 3 4 5 6 7 8 9];
y=[2 3 4 5 6 7 8 9 10];
subplot(3,1,1);semilogx(x,y);
subplot(3,1,2);semilogy(x,y);
subplot(3,1,3);loglog(x,y);

2.极坐标图

polarplot (x,y): 在极坐标中绘制线条
polarscatter (x,y):极坐标中的散点图
polarhistogram (x,y) : 极坐标中的直方图(y为一个整数)
compass (x,y): 绘制从原点发射出的箭头
ezpolar (‘函数’):易用的极坐标绘图函数
图四

x=[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9];
y=[0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 0.10];
subplot(3,2,1);polarplot(x,y);
subplot(3,2,2);polarscatter(x,y);
subplot(3,2,3);polarhistogram(x,6);
subplot(3,2,4);compass(x,y);
subplot(3,2,5);ezpolar('1+2*sin(x)');

3.条形图

bar(y)——若y为向量,则分别显示每个分量的高度。若为矩阵,则把y分解为行向量,在分别画出。
bar(x,y)——在指定的横坐标x上画出y。x为单增向量。
bar(…,width)——设置条形的相对宽度和控制在一组内条形的间距,默认值为0.8。
bar(…,‘style’)——指定条形的排列类型。类型有“group”和“stack”。
group:若y为n*m矩阵,则bar显示n组,每组m个条形图
stack:对矩阵的每一个行向量显示在一个条形中,条形的高度为该行向量中的分量和,其中同一条形中的每个向量用不同的颜色显示出来,从而可以显示每个向量中的分布。

三维格式为bar3

图五

x=[0.1 0.2 0.3 0.4];
y=[0.1 1.1 5.4 3.4 2.3 4.5 3.2 3.4 5.6];
c=x+x';
subplot(2,2,1);bar(c);title('例一');
subplot(2,2,2);bar(x,c);title('例二');
subplot(2,2,3);bar(x,c,1);title('例三');
subplot(2,2,4);bar(x,c,'stack');title('例四');

4.面积图

area(x)——与plot(x)一样,但是将所得的曲线下方的区域填充颜色。
area(x,y)——y为向量,与plot(x,y)一样,但是将所得的曲线下方的区域填充颜色。
area(x,A)——矩阵A的第一行对向量x绘图,然后依次是下一行所有行值的和对向量x绘图,每个区域有各自的颜色。
area(…,leval)——将填色部分改为由连线图到y=leval的水平之间的部分。
图六

x=[0.1 0.2 0.3 0.4];
y=[0.1 1.1 5.4 3.4];
c=x+x';
subplot(2,2,1);area(x);title('例一');
subplot(2,2,2);area(x,y);title('例二');
subplot(2,2,3);area(x,c);title('例三');
subplot(2,2,4);area(x,c,1);title('例四');

5.饼状图

pie(x)——用x中的数据画一个饼状图。x中的每一个元素代表饼状图中的一部分。
pie(x,explode)——从饼状图中分离出一部分,explode是与x同维的矩阵。当所有元素为零时,饼状图各部分连一起组成一个圆。当其中有非零元时,元素对应的扇形往外移。

三维格式为pie3

图七

x=[0.1 0.2 0.3 0.4];
y=[0 1 0 1];
subplot(2,1,1);pie(x);title('例一');
subplot(2,1,2);pie(x,y);title('例二');

6.双y轴

yyaxis left——坐标轴在左边
yyaxis right——坐标轴在右边

图八

x=[0.1 0.2 0.3 0.4];
y1=[4 5 6 7];
y2=[1 2 3 4];
yyaxis left;
plot(x,y1);
yyaxis right;
plot(x,y2);
title('例一');

7.罗盘图

compass(x,y)——x,y为n维向量
compass(z)——z为n维复数向量
compass(x,y,选项)——选项为箭头的颜色,线型等。

图九

x=[0.1 0.2 0.3 0.4];
y=[4 5 6 7];
z=[1+2*i 2+2*i 3+3*i 4+4*i];
subplot(2,2,1);compass(x,y);title('例一');
subplot(2,2,2);compass(z);title('例二');
subplot(2,2,3);compass(x,y,'m*');title('例三');

8.羽毛图

feather函数
用法与罗盘图相同

图十

x=-pi:pi/10:pi;
y=sin(x);
z=[1+2*i 2+2*i 3+3*i 4+4*i];
subplot(2,2,1);feather(x,y);title('例一');
subplot(2,2,2);feather(z);title('例二');
subplot(2,2,3);feather(x,y,'m*');title('例三');

9.矢量图

quiver(u,v)——v为mn矩阵,绘出在范围x=1:n,y=1:m的坐标系中由u和v定义的向量
quiver(x,y,u,v)——x为n维向量,y为m维向量。u和v为m
n维矩阵。则画出由x,y确定的每一个由u和v定义的向量。
quiver(…,scale)——对向量的长度进行处理。

图十一

x=-pi:pi/10:pi;
y=sin(x);
for i=1:1:21u(i)=i;v(i)=i;
end
subplot(2,2,1);quiver(x,y);title('例一');
subplot(2,2,2);quiver(x,y,u,v);title('例二');
subplot(2,2,3);quiver(x,y,u,v,0.5,'m*');title('例三');

10.散点图

scatter(x,y)——x,y为向量,且长度相同。
scatter(x,y,sz)——sz标记面积,默认36。
scatter(x,y,sz,c)——c标记颜色。

图十二

x=-pi:pi/10:pi;
y=sin(x);
for i=1:1:21u(i)=i;v(i)=i;
end
subplot(2,2,1);scatter(x,y);title('例一');
subplot(2,2,2);scatter(x,y,10);title('例二');
subplot(2,2,3);scatter(x,y,50,'m*');title('例三');

总结

本文参考了很多其他的文章,这也是我第一次写,有写的不好的地方希望大家多提提意见。另外,本文也是当成笔记来写的,因此有一些地方写的很简洁,希望大家多多包涵。

参考

1.MATLAB中特殊图形的绘制
2.使用matlab绘制条形图、面积图、饼图、柱状图
3.【MATLAB】MATLAB 可视化之极坐标图
4.MATLAB 画图,对数坐标轴
5.数学建模之MATLAB画图汇总
6.Matlab绘图方法整理(超完整版)
7.如何使用Matlab绘制各类特殊图形


http://chatgpt.dhexx.cn/article/7IGiqhbp.shtml

相关文章

MATLAB基本绘图

一.基本命令&#xff1a; plot(); 绘图命令 hold on,hold off 清除之前的图形 legend();多图标注 xlabel(); ylabel(); zlable(); title(); text();文本 annotation();用于在图上绘制符号 关于图像字体和轴的设置命令 二.命令介绍 2.1 plot(); 绘图命令 %hold on,…

数学建模之MATLAB画图汇总

1. 二维数据曲线图 1.1 绘制二维曲线的基本函数 1&#xff0e;plot()函数 plot函数用于绘制二维平面上的线性坐标曲线图&#xff0c;要提供一组x坐标和对应的y坐标&#xff0c;可以绘制分别以x和y为横、纵坐标的二维曲线。 例: t0:0.1:2*pi; x2 * t; yt.*sin(t).*sin(t);…

必须收藏的MATLAB画图指南

目录 一、图像标签和注释 标签函数 注释函数 标签属性 注释属性 二、坐标区设置 坐标区范围和纵横比函数 网格线、刻度值和标签函数 多个绘图函数 清除或创建坐标区 属性 三、线图 线图函数 对数图函数 函数图 线图属性 四、数据分布图 分布图 气泡图 散点…

Matlab 画图(全网最优质文章)

文章目录 画图基本指令一、散点图1.最基础的散点图2.函数专用散点图3.设置圆圈大小的散点图 二、折线图1.一条线2.多条线在这里插入图片描述 三、柱状图&#xff08;三种&#xff09;1.最基础的柱形图2.多变量柱形图3.三维的柱形图4.堆叠形柱形图5.水平柱形图 四、火柴棍图&…

Android APK反编译技巧全讲解

Android APK反编译技巧全讲解 导言&#xff1a;在我们安卓开发当中&#xff0c;我们不仅需要掌握基础的开发技能&#xff0c;也需要掌握软件的安全技能&#xff0c;这样才可以让我们的软件能够成为一款能够真正可以进行发布的软件&#xff0c;同时也可以让自己的核心技术不会被…

Apk反编译再打包

Apk反编译再打包 近期研究了一下Apk反编译技术&#xff0c;在网上找了很多资料&#xff0c;进行了实践&#xff0c;成功完成了apk反编译&#xff0c;修改代码&#xff0c;再打包编译的过程。这个过程耗费了我3天的时间&#xff0c;踩了很多坑。记录下来&#xff0c;便于我以后…

apk 反编译及重新打包签名

apk 反编译及重新打包签名 1. 需要的工具 apktool&#xff0c;apk 编译及反编译工具keytool&#xff0c;用于管理密钥和证书的工具jarsigner&#xff0c;签名工具apksigner&#xff0c;签名工具 2. apk 反编译 首先需要对 apk 进行反编译&#xff0c;假设 apk 名为 name.ap…

APK反编译(2)

前提说明: 今天在反编译某个apk解压出来的dex文件时,会出现编译失败,生成classes-dex2jar.jar和classes-error.zip,这是反编译失败的结果.查找资料说是老版本的dex2jar已经不能反编译最新的dex文件了,需要用新版本的. 再一个,部分class文件,用jd-gui.exe打开,会出现internalEr…

【Apk反编译】如何反编译Apk得到Java源代码

Android Apk反编译得到Java源代码 大家做Android开发&#xff0c;看到别人应用里一些好的功能&#xff0c;是不是很想得到源码&#xff0c;借鉴一下&#xff1f;既然Android是用JAVA开发的&#xff0c;那么我们就能很容易的通过反编译的到应用的源代码。下面我简单介绍下应该怎…

【反编译】安卓APK反编译为java文件

【反编译】安卓APK反编译为java文件 准备工具 要反编译的apk文件&#xff0c; 以微信8.0.apk为例子 dex2jar 下载地址 dex2jar-2.0反编译.zip-Android文档类资源-CSDN文库 https://sourceforge.net/projects/dex2jar/ jd-gui java反编译工具 .class --> .java D…

apk反编译-源码阅读

文章目录 一、准备工具(1) 使用工具介绍&#xff1a;(2) 使用工具下载与安装&#xff1a; 二、Apk 反编译步骤三、出错提示&#xff1a; 一、准备工具 提示&#xff1a;这些工具在官网都不好下载&#xff0c;偶也是废了好大力气呢&#xff0c;建议直接下载我提供的网盘链接 (…

APK反编译以及提取有用信息

目录 一、反编译工具的介绍 apktool dex2jar jd-gui 二、apk反编译 三、提取有用信息 信息收集的内容 apk开发者id和apk签名证书查找 三、一键式反编译进行信息收集工具介绍 现学现卖&#xff0c;有些地方有错误还请包含&#xff0c;也十分欢迎指教补充。 一、反编译工具…

如何对apk文件进行反编译

1.下载反编译三件套(2022.9.5更新) 点我直达 提取码&#xff1a;cbjw 2.压缩包解压 这里以解压到D:\decompile为例 3. 使用apktool反编译apk&#xff08;此处以wat.apk处于D:\decompile文件夹为例&#xff09; //进入dos窗口:winR->输入cmd->回车cd D: 回车cd decompi…

APK反编译

本文首发于&#xff1a;行者AI 当我们想要了解一款APP时&#xff0c;最好的学习方式就是将其APK文件进行反编译。将APK进行反编译之后&#xff0c;我们就可以看到开发这个应用使用的资源文件&#xff08;图片&#xff09;、layout、样式、相关的实现代码等&#xff0c;学习这些…

apk反编译教程(2022win11亲测)

捣鼓apk反编译&#xff0c;想做一些羞羞的事情&#xff0c;网上的教程大多都比较旧&#xff0c;这里更新一篇比较新且详细的反编译教程。 目录 软件准备 apktool安装和使用 dex2jar安装和使用 jd-gui使用 软件准备 首先我们想要比较完整的解析一个apk需要三个工具&#…

Android apk反编译

学习和开发Android应用有一段时间了&#xff0c;今天写一篇博客总结一下Android的apk文件反编译。我们知道&#xff0c;Android应用开发完成之后&#xff0c;我们最终都会将应用打包成一个apk文件&#xff0c;然后让用户通过手机或者平板电脑下载下来进行安装。正常情况下&…

AVD创建与使用

一、创建虚拟设备&#xff08;AVD&#xff09; AVD链接地址>>手机安卓自动化环境配置 操作程序&#xff1a; D:\tool\adt4_2_32bit\eclipse-eclipse.exe&#xff08;双击启动&#xff09;–开发工具 创建AVD&#xff08;虚拟设备&#xff09;&#xff1a; 1)点击Window…

关于AVOD, 你需要知道的事

翻译、编辑&#xff1a;Alex 本文来自OTTVerse&#xff0c;作者为Krishna Rao Vijayanagar。 ▲扫描图中__二维码了解音视频技术大会更多信息▲ Easy-Tech #026# AVOD&#xff08;Advertising-based Video On Demand&#xff09;是一种视频点播商业模式&#xff1a;通过在视频…

AVOD:Aggregate View Object Detection跑通(官方README小补充)

本地环境 Ubuntu20.04 anaconda tensorflow-gpu1.3.0 cudatookit8.0 cudnn6.0 protobuf3.14.0(protobuf用3.2.0会报错) 1. protobuf文件解释 protobuf是google的一个开源的用来做数据通信的库&#xff0c;在avod/protos文件中有很多.proto文件&#xff0c;这些文件定义了…

AVA

声明&#xff1a;作者翻译论文仅为学习&#xff0c;如有侵权请联系作者删除博文&#xff0c;谢谢&#xff01; 论文链接&#xff1a;arXiv:1705.08421 [cs.CV] 《AVA: A Video Dataset of Spatio-temporally Localized Atomic Visual Actions》论文翻译 摘要介绍相关工作数据收…