【数学建模】利用Matlab绘图(2)

一、Matlab中plot函数的基本用法

在matlab中,函数的基本用法主要包括以下几种

第一类:

plot(X,Y,LineSpec)

第二类:

plot(tbl,xvar,yvar)

1.1 第一类

1.1.1x-y坐标

x和y的选择取决于绘图所需的数据类型以及图像的类型。下表列出了几种基本的x和y坐标类型,关于标记的详细说明,请参见 1.2 节。

绘图类型如何指定代码示例例图

将x和y指定为标量并包含一个标记

plot(1,2,'or')

将x和y指定为长度相同的向量并包含一个标记
plot([1 3 5], [2 4 6],':ob')

使用向量连续给定多组点
plot([1 2 3],[6 8 9],':+b',[3 5 6],[ 8 9 10],'--or')

x或y共享一组坐标
plot([1 2 3],[3 5 6;8 9 10],'--or')

将会为每一列绘制一条线
plot([1 2 3;6 8 9],[3 5 6;8 9 10],'--or')

1.1.2LineSpec的用法

LineSpec的使用分为三个部分:‘abc',其中a代表线条的类型,b代表点的标记,c代表线条和点的颜色。下文将分别通过三个表格给出线条类型、点标记和颜色的具体表示。如果忽略线型并仅指定标记,则绘图只会显示标记,而不显示线条。

1.1.2.1线条的类型

线条

类型

类型

描述

代码示例例图
"-"

线

plot([1 2 3],[4 5 6],'-or')

"--"

线

plot([1 2 3],[4 5 6],'--or')

":"

线

plot([1 2 3],[4 5 6],':or')

"-."

线

plot([1 2 3],[4 5 6],'-.or')

 1.1.2.2点的标记

点的

标记

标记

描述

代码

示例

例图
"o"

plot([1 2 3],[4 5 6],'--or')

"+"

plot([1 2 3],[4 5 6],'--+r')

"*"

plot([1 2 3],[4 5 6],'--*r')

"."
plot([1 2 3],[4 5 6],'--.r')

"x"

plot([1 2 3],[4 5 6],'--xr')

"_"

线

plot([1 2 3],[4 5 6],'--_r')

"|"

线

plot([1 2 3],[4 5 6],'--|r')

"square"

plot([1 2 3],[4 5 6],'--squarer')

"diamond"

plot([1 2 3],[4 5 6],'--diamondr')

"^"

plot([1 2 3],[4 5 6],'--^r')

"v"

plot([1 2 3],[4 5 6],'--vr')

">"

plot([1 2 3],[4 5 6],'-->r')

"<"

plot([1 2 3],[4 5 6],'--<r')

"pentagram"

plot([1 2 3],[4 5 6],'--pentagramr')

"hexagram"

plot([1 2 3],[4 5 6],'--hexagramr')

 1.1.2.3颜色

颜色

名称

名称

代码示例例图
"red""r"
plot([1 2 3],[4 5 6],'--or')

"green""g"
plot([1 2 3],[4 5 6],'--og')

"blue""b"
plot([1 2 3],[4 5 6],'--ob')
"cyan""c"
plot([1 2 3],[4 5 6],'--oc')
"magenta""m"
plot([1 2 3],[4 5 6],'--om')
"yellow""y"
plot([1 2 3],[4 5 6],'--oy')
"black""k"
plot([1 2 3],[4 5 6],'--ok')
"white""w"
plot([1 2 3],[4 5 6],'--ow')

1.1.3利用excel中的坐标数据绘图

1.1.3.1将excel的数据导入向量

利用matlab中的readmatrix函数读取excel表中的数据

%读取excel表格中的数据
data=redmatrix('绝对路径\文件名.xlsx')
%读取excel中的第n列
data_n=data(:,n);
1.1.3.2示例

点击“文件”以获取示例中的 Excel 数据,接着通过读取 Excel 表格中的数据并将其转换为向量,再利用plot函数将各个散点连接起来,就能得到一个图像。

下面是具体的代码:

data = readmatrix('D:\Desktop\point_data.xlsx');
x_data = data(:, 1);
y_data = data(:, 2);
plot(x_data,y_data,'--.r')

我们就可以得到如图所示的一个散点图:

 

1.2第二类

1.2.1table的用法

table(列表1,列表2,列表3,······,列表n),其中列表1,2,···,n为一个列向量,每一个列表都组成了表格中的一列。在table中我们可以通过VariableNames指定表的每一列的名称,通过RowNames可以指定表的每一行的行名称。下面给出一个示例:

a=[1;2;3];
b=[4;5;6];
c=[7;8;9];
table(a,b,c,'VariableNames',{'first' 'second' 'third'},'RowNames',{'first' 'second' 'third'})

运行这段代码我们可以在命令行窗口得到一个如图所示的表:

1.2.2利用table和plot函数绘图

仍然以上述的表为例,利用plot函数画图,代码如下所示:

a=[1;2;3];
b=[4;5;6];
c=[7;8;9];
tbl=table(a,b,c,'VariableNames',{'first' 'second' 'third'},'RowNames',{'first' 'second' 'third'});
plot(tbl,1,2)

得到的图像如图所示: 

 但我们也可以只指定y向量,这样子得到的就是一个时间表,下面给出例子:

代码:

a=[1;2;3];
b=[4;5;6];
c=[7;8;9];
tbl=table(a,b,c,'VariableNames',{'first' 'second' 'third'},'RowNames',{'first' 'second' 'third'});
plot(tbl,3)

例图:

1.3 Line属性

通过修改plot函数中的Line属性,我们可以调整图像中线条的颜色、粗细以及其他各种样式。

1.3.1线条

属性

名称

属性描述

示例

代码

例图
Color

线

颜色

名称

plot([1 2 3], [4 5 6], 'Color','r')

RGB三元组
plot([1 2 3], [4 5 6], 'Color','[0,1,0]')

16进制颜色代码
plot([1 2 3], [4 5 6], 'Color','#FFFF00')

ColorMode

控制如何设置Color

auto(默认)
plot([1 2 3], [4 5 6], 'ColorMode','auto')

manual
plot([1 2 3], [4 5 6], 'ColorMode','manual')

LineStyle线型,且必为右侧给出的五种之一'-'(实线)
plot([1 2 3], [4 5 6], 'LineStyle','-')

'--'(虚线)
plot([1 2 3], [4 5 6], 'LineStyle','--')
':'(点线)
plot([1 2 3], [4 5 6], 'LineStyle',':')
'-.'(点划线)
plot([1 2 3], [4 5 6], 'LineStyle','-.')
'none'(无)
plot([1 2 3], [4 5 6], 'LineStyle','none')
LineStyleMode控制如何设置LineStyleauto(默认)
plot([1 2 3], [4 5 6], 'LineStyleMode','auto')
manual
plot([1 2 3], [4 5 6], 'LineStyleMode','manual')
LineWidth线条宽度(正值),如果线条具有标记,那么线条宽度也会影响标记边0.5
plot([1 2 3], [4 5 6], 'LineWidth',0.5)

2.0
plot([1 2 3], [4 5 6], 'LineWidth',2.0)
SeriesIndex序列索引

LineJoin线条变焦的样式'round'
plot([1 2 3], [4 5 4], 'LineJoin','round','LineWidth',10.0)
'miter'
plot([1 2 3], [4 5 4], 'LineJoin','miter','LineWidth',10.0)
'chamfer'
plot([1 2 3], [4 5 4], 'LineJoin','chamfer','LineWidth',10.0)
AlignVertexCenters锐化垂直线和水平线on
off可能会出现颜色不平滑的现象

 1.3.2标记

属性名称属性描述示例代码例图
Marker标记符号与上文1.1.2中的符号完全相同
MarkerMode控制如何设置Markerauto
manual
MarkerIndices需要标记的点的索引在具体的点显示标记
plot([1 2 3 4 5 6 7 8 9 10], [1 4 7 9 12 15 18 21 24 27 ], Marker='o',MarkerIndices=[1 3 7 9])

每隔几个点显示一次
y=[1 4 7 9 12 15 18 21 24 27 ];
plot([1 2 3 4 5 6 7 8 9 10], y, '-o','MarkerIndices',1:2:length(y))

MarkerSize标记的大小(正值)6
y=[1 4 7 9 12 15 18 21 24 27 ];
plot([1 2 3 4 5 6 7 8 9 10], y, '-o','MarkerIndices',1:2:length(y),'MarkerSize',6)

60
y=[1 4 7 9 12 15 18 21 24 27 ];
plot([1 2 3 4 5 6 7 8 9 10], y, '-o','MarkerIndices',1:2:length(y),'MarkerSize',60)
MarkerEdgeColor标记轮廓颜色与1.3.1线条中的颜色相同
MarkerFaceColor标记填充颜色

1.3.3笛卡尔坐标数据 

属性

名称

属性描述代码示例例图
XDatax值,指定为向量对于二维图像,不指定x值则将YData的索引用作该绘图的x值
x=[1 3 5 7];
y=[2 4 6 8];
z=[1 4 9 16];
plot(y,'--or')

x=[1 3 5 7];
y=[2 4 6 8];
z=[1 4 9 16];
plot(x,y,'--or')

对于三维图像,不指定x值则将ZData的索引用作该绘图的x值
x=[1 3 5 7];
y=[2 4 6 8];
z=[1 4 9 16];
plot3(x,y,z,'--or')

XDataMode控制如何设置XData属性autoXData可以为YData的索引
manualXData不自动更新
XDataSource链接到XData的变量
YData与XData相同
YDataMode与XDataMode相同
YDataSource与XDataSource相同
ZData与XData相同
ZDataMode与XDataMode相同
ZDataSource与XDataSource相同
AffectAutoLimits在做表去范围中包括数据范围on
x1=[1 3 5 7];
y1=[2 4 6 8];
x2=[-5 1 5 7];
y2=[2 6 10 14];
plot(x1,y1,'--or',x2,y2,':+b','AffectAutoLimits','on')

off

x1=[1 3 5 7];
y1=[2 4 6 8];
x2=[-5 1 5 7];
y2=[2 6 10 14];
plot(x1,y1,'--or',x2,y2,':+b','AffectAutoLimits','off')

 1.3.4图例

本段中的一些用法会在1.4中具体给出

属性名称属性描述代码示例例图
DisplayName图例标签,只有调用legend命令后,才会显示图例。
x1=[1 3 5 7];
y1=[2 4 6 8];
x2=[-5 1 5 7];
y2=[2 6 10 14];
plot(x1,y1,'--or','DisplayName','D1')
hold on;%保持当前图形,在同一张图上绘制第二组数据
plot(x2,y2,':+b','DisplayName','D2')
legend show;%添加图例

Annotation在图例中包含对象on在图例中包含对象
x1=[1 3 5 7];
y1=[2 4 6 8];
x2=[-5 1 5 7];
y2=[2 6 10 14];
P1=plot(x1,y1,'--or','DisplayName','D1');
hold on;%保持当前图形,在同一张图上绘制第二组数据
P2=plot(x2,y2,':+b','DisplayName','D2');P1.Annotation.LegendInformation.IconDisplayStyle = "on";%不隐藏第一组数据的图例
legend show;%添加图例
off不在图例中包含对象
x1=[1 3 5 7];
y1=[2 4 6 8];
x2=[-5 1 5 7];
y2=[2 6 10 14];
P1=plot(x1,y1,'--or','DisplayName','D1');
hold on;%保持当前图形,在同一张图上绘制第二组数据
P2=plot(x2,y2,':+b','DisplayName','D2');P1.Annotation.LegendInformation.IconDisplayStyle = "off";%隐藏第一组数据的图例
legend show;%添加图例

二、Matlab中plot3函数的基本用法

plot3与plot函数除了在输入的时候一个需要输入三个向量一个只需要输入两个向量,剩下的在各类用法方面几乎相同或极为相似。

三、plot和plot3函数绘图的例子

3.1sinx和cosx的图像

3.1.1代码示例

x1=0:pi/100:2*pi;
y1=sin(x1);
x2=0:pi/100:2*pi;
y2=cos(x2);
plot(x1,y1, 'DisplayName','sinx', ...'Color','r', ...'LineStyle','-' ...,'LineWidth',1.0, ...'Marker','o', ...'MarkerIndices',1:10:length(y1),'MarkerSize',5,'MarkerEdgeColor','b','MarkerFaceColor','y')
hold on;
plot(x2,y2,'DisplayName','cosx', ...'Color','k', ...'LineStyle','--' ...,'LineWidth',3.0, ...'Marker','+', ...'MarkerIndices',1:15:length(y2),'MarkerSize',7,'MarkerEdgeColor','g','MarkerFaceColor','none')
legend show;

3.1.2例图

3.2不同底数的log图像

3.2.1代码示例

x1=1:1000;
y1=log2(x1);
y2=log(x1)/log(5);
y3=log10(x1);
plot(x1,y1,'--.r','DisplayName','log2(x)')
hold on;
plot(x1,y2,'-.k','DisplayName','log5(x)')
hold on;
plot(x1,y3,':.c','DisplayName','log10(x)')
legend show;

3.2.2例图

3.3螺旋线

3.3.1示例代码

x=0:pi/100:10*pi;
y=sin(x);
z=cos(x);
plot3(x,y,z,'--.b')

3.3.2例图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/64396.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编写工具模块

文章目录 1.新建模块1.新建模块sun-common-tool2.sun-dependencies指定依赖3.sun-common统一管理sun-common-tool子模块4.sun-common-tool的pom.xml5.清除掉创建模块时默认sun-frame对sun-common-tool进行管理 2.常用工具类1.DateUtils.java2.EncodeUtils.java3.IpUtils.java4.…

构建一个rust生产应用读书笔记四(实战3)

从这一节开始&#xff0c;我们将继续完善邮件订阅生产级应用&#xff0c;根据作者的选型sqlx作为数据库操作的类库&#xff0c;它有如下优点&#xff1a; 它旨在提供高效、安全且易于使用的数据库交互体验。sqlx 支持多种数据库&#xff0c;包括 PostgreSQL、MySQL 和 SQLite&…

视频直播点播平台EasyDSS推拉流技术结合无人机推流在道路交通巡检场景中的应用

随着城市化进程的加速&#xff0c;交通网络日益复杂&#xff0c;交通巡检工作面临着前所未有的挑战。传统的巡检方式往往依赖于人工巡查或地面监控设备&#xff0c;但这些方法存在巡检范围有限、效率低下等缺点。 无人机凭借其高空视野、灵活机动、实时监控等优势&#xff0c;…

VBA技术资料MF238:ADO提取多文件区域指定数据到工作表

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

Mapper代理开发

引入 Mybatis入门方式中&#xff0c;以下代码仍存在硬编码问题 Mapper 代理开发&#xff1a; 目的&#xff1a; 解决原生方式中的硬编码 简化后期执行sql ------下图中&#xff0c;第一段代码是原生硬编码代码块&#xff0c;第二个是引入了Mapper代理开发的代码块。 Mapper代…

ubuntu22.04编译安装Opencv4.8.0+Opencv-contrib4.8.0教程

本章教程,主要记录在Ubuntu22.04版本系统上编译安装安装Opencv4.8.0+Opencv-contrib4.8.0的具体过程。 一、下载opencv和opencv-contrib包 wget https://github.com/opencv/opencv/archive/refs/tags/4.8.0.zip wget https://github.com/opencv/opencv_contrib/archive/refs/…

使用C语言连接MySQL

库的准备 要使用C语言连接mysql&#xff0c;需要使用mysql官网提供的connect库&#xff0c;可以去官网下载&#xff0c;由于我们要下载到 Linux 操作系统中&#xff0c;也可以使用如下指令进行安装库 sudo apt-get install libmysqlclient-dev MySQL连接C/C的库通常会安装在/us…

【Android学习】RxJava

文章目录 资料连接1. Merge & Zip操作符: 合并数据源2. Map & FlapMap & ConcatMap & Buffer: 变换操作符3. retry & retryUntil & retryWhen : 错误处理操作符4. Transformer & Compose 转换操作符5. 网络请求嵌套回调 FlatMap6. 网络请求出错重连…

Mac配置 Node镜像源的时候报错解决办法

在Mac电脑中配置国内镜像源的时候报错,提示权限问题,无法写入配置文件。本文提供解决方法,青测有效。 一、原因分析 遇到的错误是由于 .npm 目录下的文件被 root 用户所拥有,导致当前用户无法写入相关配置文件。 二、解决办法 在终端输入以下命令,输入管理员密码即可。 su…

PyTorch基础入门

目录 前言一、[张量的广播&基本运算](https://www.bilibili.com/video/BV1Gg411u7Lr/?spm_id_from333.999.0.0)1. 张量的广播特性2. 逐点&规约&比较运算 二、张量的线性代数运算1. BLAS & LAPACK2. 矩阵形变及特殊矩阵构造3. 矩阵基本运算4. 矩阵的线性代数运…

【VSCode】常用插件汇总

1 Path Autocomplete&#xff08;路径提示的插件&#xff09; 步骤一&#xff1a;在vscode的扩展搜索中直接搜索Path Autocomplete&#xff0c;直接安装 步骤二&#xff1a;配置 配置 VS Code settings.json "path-autocomplete.pathMappings": {"": &q…

IOS通过WDA自动化中遇到的问题

IOS自动化遇到的问题 搭建WDA环境中遇到的问题1、XCode unsupport iphone xxx.2、创建Bundle Identifier出现问题&#xff1a;Communication with Apple failed3、创建Bundle Identifier出现问题&#xff1a;Automatic signing failed \Signing certificate is invalid4、创建B…

(六)- DRM驱动开发(qcom)

一&#xff0c;Linux Android Display 1&#xff0c;Linux Android Display Software Subsystem 密 2&#xff0c;Linux Android Display Architecture 密 二&#xff0c;DRM/KMS Adreno DPU 1&#xff0c;硬件框图 密 1.1 Qualcomm Adreno DPU 8-Series Overview 密 …

游戏AI实现-寻路算法(GBFS)

贪婪最佳优先算法是宽度优先遍历和贪婪算法结合的产物&#xff0c;使用启发式函数选择当前最低代价的节点&#xff0c;改善了宽度优先遍历需要遍历地图的大量节点来找寻结果的缺点。 算法过程&#xff1a; 1.首先设置开始节点的启发函数值&#xff08;h&#xff09;为0&#…

[Unity]Unity跨平台开发之Android简介

Android要求和兼容 图形接口支持 注意&#xff1a; 新的 Unity 项目默认不支持 OpenGL ES 2.0。 由于硬件和图形 API 的限制&#xff0c;并非所有渲染管道都与 Android 兼容。 图片压缩 Android标准压缩格式是ETC和ASTC。Unity默认压缩格式是ASTC。如果Android设备不支持您选…

监控易在汽车制造行业信息化运维中的应用案例

引言 随着汽车制造行业的数字化转型不断深入&#xff0c;信息化类IT软硬件设备的运行状态监控、故障告警、报表报告以及网络运行状态监控等成为了企业运维管理的关键环节。监控易作为一款全面、高效的信息化运维管理工具&#xff0c;在汽车制造行业中发挥着重要作用。本文将结合…

Trimble天宝三维激光扫描仪在建筑工程竣工测量中的应用【沪敖3D】

竣工测量是建筑项目竣工阶段的一个至关重要的环节&#xff0c;它为建筑工程的质量验收和成果核查提供了核心的参考依据。传统的竣工测量方法&#xff0c;如全站仪测量&#xff0c;主要依赖于现场人工操作&#xff0c;存在一些明显的局限性&#xff0c;例如作业时间长、工作量大…

健康养生:拥抱生活的艺术

健康养生&#xff1a;拥抱生活的艺术 在快节奏的现代生活中&#xff0c;健康已成为我们最宝贵的财富。健康养生&#xff0c;不仅仅是一种生活方式的选择&#xff0c;更是一种对待生活的态度&#xff0c;它关乎于如何在日常中寻找到平衡&#xff0c;让身心得以滋养&#xff0c;…

【C语言程序设计——入门】基本数据类型与表达式(头歌实践教学平台习题)【合集】

目录&#x1f60b; <第1关&#xff1a;print 函数操作> 任务描述 相关知识 编程要求 测试说明 我的通关代码: 测试结果&#xff1a; <第2关&#xff1a;转义字符使用> 任务描述 相关知识 编程要求 测试说明 我的通关代码: 测试结果&#xff1a; <…

C++算法第九天

本篇文章我们继续学习c算法 目录 第一题 题目链接 题目展示 代码原理 暴力解法 二分解法 代码编写 第二题 题目链接 题目展示 代码原理 代码编写 重点回顾 朴素二分 非朴素二分 重点一 重点二 重点三 第一题 题目链接 153. 寻找旋转排序数组中的最小值 - 力…