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

matlab使用2-基础绘图

matlab使用2-基础绘图

文章目录

  • matlab使用2-基础绘图
    • 1. 二维平面绘图
    • 2. 三维立体绘图
    • 3. 图形窗口的分割

1. 二维平面绘图

% 创建一些二维数据  
x = 0:0.01:10; 		% x轴的数据点,从0到10,间隔为0.01  
y = sin(x); 		% y轴的数据点,是x的正弦值  % 使用plot函数绘制二维线图  
figure; 			% 创建一个新的图形窗口  
plot(x, y);			% 绘制二维线图  % 添加标签和标题  
xlabel('x'); 		% x轴标签  
ylabel('sin(x)'); 	% y轴标签  
title('二维平面绘图:y = sin(x)'); % 图形标题  % 还可以添加图例(如果需要的话)  
% legend('sin(x)'); % 在这个简单的例子中不需要图例  % 显示网格(可选)  
grid on; 			% 打开网格  % 设置坐标轴的范围(可选)  
% axis([xmin xmax ymin ymax]); % 设置x轴和y轴的范围  % 调整图形大小和位置(可选)  
% set(gcf, 'Position', [left bottom width height]); % 调整图形窗口的位置和大小

image-20240514204302162

  • 基本步骤

    • 创建二维数据
    • 新建幕布 + 绘制二维平面图
    • 图表配置:标题、标签、颜色等等
  • 图标配置相关

    • 颜色选项参数:

      颜色字符
      r
      绿g
      b
      y
      粉红m
      c
      w
      k
    • 线性选项参数:

      线性符号示例
      实线-
      虚线---------
      冒号线:
      点画线-.—·—·—·
    • 数据标记点选项参数:

      符号点类型
      ·
      +十字号
      o圆圈
      *星号
      x叉号
      s正方形
      d棱形
      ^上三角
      v下三角
      <左三角
      >右三角
      p五角星
      h六角星
  • 二维平面图表-多线同一表

    % 创建一些二维数据  
    x = 0:0.01:10; 			% x轴的数据点  
    y1 = sin(x); 			% 第一条线的y值,是x的正弦值  
    y2 = cos(x); 			% 第二条线的y值,是x的余弦值  % 创建一个新的图形窗口  
    figure;  % 绘制第一条线(正弦曲线),红色,实线  
    plot(x, y1, 'r-');  % 保持当前的图形,以便添加更多线  
    hold on;  % 绘制第二条线(余弦曲线),蓝色,带圆圈标记的实线  
    plot(x, y2, 'b-');  % 添加标签和标题  
    xlabel('x');  
    ylabel('y');  
    title('二维平面绘图:y = sin(x) 和 y = cos(x)');  % 添加图例  
    legend('sin(x)', 'cos(x)');  % 显示网格(可选)  
    grid on;  % 释放图形保持状态,以便下一个plot命令创建新图  
    hold off; 				% 通常不需要显式调用hold off,除非你要确保后续plot命令创建新图
    

    image-20240514205857086

2. 三维立体绘图

  • 首先创建X和Y的网格数据

  • 然后使用这些网格数据和一个函数来计算Z的值

  • 然后,使用不同的函数来绘制三维图形

  • 示例:

    • 使用plot3绘制三维线图

      % 创建三维数据  
      x = linspace(0, 2*pi, 100);  
      y = linspace(0, 2*pi, 100);  
      [X, Y] = meshgrid(x, y);  
      Z = sin(sqrt(X.^2 + Y.^2));  % 绘制三维线图  
      figure;  
      plot3(X(:), Y(:), Z(:), 'b-');  
      title('三维线图');  
      xlabel('X');  
      ylabel('Y');  
      zlabel('Z');  
      grid on;
      

      image-20240514210823622

    • 使用surf绘制三维曲面图

      % 使用与上面相同的X, Y, Z数据  
      figure;  
      surf(X, Y, Z);  
      title('三维曲面图');  
      xlabel('X');  
      ylabel('Y');  
      zlabel('Z');  
      colorbar; % 添加颜色条  
      lighting gouraud; % 改进光照效果  
      camlight; % 添加光源
      

      image-20240514210954096

    • 使用mesh绘制三维网格图

      % 使用与上面相同的X, Y, Z数据  
      figure;  
      mesh(X, Y, Z);  
      title('三维网格图');  
      xlabel('X');  
      ylabel('Y');  
      zlabel('Z');
      

      image-20240514211059222

    • 使用contour3绘制三维等高线图

      % 使用与上面相同的X, Y, Z数据  
      figure;  
      contour3(X, Y, Z, 20); % 20表示等高线的级别数  
      title('三维等高线图');  
      xlabel('X');  
      ylabel('Y');  
      zlabel('Z');
      

      image-20240514211142439

  • 注意事项

    • meshgrid函数用于创建X和Y的网格数据,这在三维图形绘制中是必要的
    • :操作符用于将X、Y和Z的列向量转换为行向量,这在plot3中特别有用,因为plot3期望其参数是行向量
    • surfmeshcontour3等函数中,通常直接使用由meshgrid创建的二维网格

3. 图形窗口的分割

选择哪种方法取决于具体需求,例如想要创建的子图的数量、位置、样式以及是否需要与其他MATLAB功能(如工具栏、菜单等)集成等等

  • subplot 函数

    • subplot 函数用于在单个图形窗口中创建多个子图。你可以指定子图的网格位置和当前激活的子图

    • 示例:

      subplot(2, 2, 1);  % 创建 2x2 网格的第一个子图  
      plot(1:10);  
      subplot(2, 2, 2);  % 创建 2x2 网格的第二个子图  
      plot(10:-1:1);  
      subplot(2, 2, 3);  % 创建 2x2 网格的第三个子图  
      bar(1:5);  
      subplot(2, 2, 4);  % 创建 2x2 网格的第四个子图  
      pie([1 2 3 4]);
      

      image-20240514213000459

  • **axes **

    • axes 函数允许更精细地控制子图的位置和大小,可以通过指定位置向量和轴属性来定义轴的范围和样式

    • 示例:

      axes('Position', [0.1 0.1 0.4 0.4]);  % 创建一个轴,占据窗口的左下角  
      plot(1:10);  
      hold on;  % 保持当前轴上的图形,以便在同一轴上添加更多图形  
      plot(10:-1:1, 'r');  % 在同一轴上添加红色线条  
      axes('Position', [0.6 0.1 0.4 0.4]);  % 创建一个新的轴,占据窗口的右下角  
      bar(1:5);
      

      image-20240514213237008

  • appdesigner 或 GUIDE

    • 对于更复杂的图形用户界面(GUI),可以使用 MATLAB App Designer 或 GUIDE 工具来创建具有多个面板或轴的窗口
    • 这些工具提供了图形化的界面来设计和布局GUI组件
  • tiledlayout 和 nexttile

    • tiledlayoutnexttile 函数提供了一种更现代的方式来创建平铺的图形布局

    • 允许定义网格布局,并在这些网格中放置轴

    • 示例:

      tiledlayout(2, 2);  % 创建一个 2x2 的平铺布局  
      nexttile;  % 激活第一个轴  
      plot(1:10);  
      nexttile;  % 激活第二个轴  
      plot(10:-1:1);  
      nexttile;  % 激活第三个轴  
      bar(1:5);  
      nexttile;  % 激活第四个轴  
      pie([1 2 3 4]);
      

      image-20240514213625896

相关文章:

matlab使用2-基础绘图

matlab使用2-基础绘图 文章目录 matlab使用2-基础绘图1. 二维平面绘图2. 三维立体绘图3. 图形窗口的分割 1. 二维平面绘图 % 创建一些二维数据 x 0:0.01:10; % x轴的数据点&#xff0c;从0到10&#xff0c;间隔为0.01 y sin(x); % y轴的数据点&#xff0c;是x的正弦…...

嵌入式开发四大平台介绍

MCU&#xff08;Micro Control Unit&#xff09;四大平台介绍&#xff09; 单片机优点&#xff1a;缺点&#xff1a;总结&#xff1a; DSP digital signal processingARM优点&#xff1a;缺点&#xff1a;总结 FPGA什么事FPGA&#xff08;集成元件库&#xff09;FPGA开发方法—…...

《Python编程从入门到实践》day28

# 昨日知识点回顾 安装Matplotlib 绘制简单的折线图 # 今日知识点学习 15.2.1 修改标签文字和线条粗细 # module backend_interagg has no attribute FigureCanvas. Did you mean: FigureCanvasAgg? # 解决办法&#xff1a;matplotlib切换图形界面显示终端TkAgg。 #…...

STC8增强型单片机开发【定时器Timer⭐】

目录 一、引言 二、定时器基础知识 三、STC8定时器配置 四、代码示例 五、总结 一、引言 在单片机开发中&#xff0c;定时器&#xff08;Timer&#xff09;是一个极其重要的组件&#xff0c;它允许开发者基于时间触发各种事件或任务。STC8增强型单片机作为一款功能丰富的…...

C语言实训项目源码-02餐厅饭卡管理系统-C语言实训C语言大作业小项目

C语言餐厅饭卡管理系统 一、主要功能 主要功能模块 页面名称 实现功能 负责人 进入页面 进入程序 主函数 系统主要功能 修改密码函数 修改密码 充值&#xff0c;显示函数 饭卡充值与信息显示 购买饭菜…...

Linux第四节--常见的指令介绍集合(持续更新中)

点赞关注不迷路&#xff01;本节涉及初识Linux第四节&#xff0c;主要为常见的几条指令介绍。 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1f44d;&#x1f3fb; 收藏 ✨ 加关注&#x1f440; 期待与你共同进步! 1. more指令 语法&#xff1a;more [选项][文件]…...

Apache Sqoop:高效数据传输工具搭建与使用教程

目录 引言一、环境准备二、安装sqoop下载sqoop包解压文件 三、配置Sqoop下载mysql驱动拷贝hive的归档文件配置环境变量修改sqoop-env.sh配置文件替换版本的commons-lang的jar包 验证Sqoop安装查看Sqoop版本测试Sqoop连接MySQL数据库是否成功查看数据库查看数据表去除警告信息 四…...

【C++初阶】第十一站:list的介绍及使用

目录 list的介绍及使用 1.list的含义 2.list的介绍 3.list的使用 1.list的构造 2.list iterator的使用 3.list capacity 4.list element access 5 list modifiers 尾插尾删 和 头插头删 insert 和 erase resize swap clear 6.list sort and reverse 7.list copy vector copy li…...

【devops】Linux 日常磁盘清理 ubuntu 清理大文件 docker 镜像清理

日常磁盘清理 1、查找大文件 find / -type f -size 1G2、清理docker无用镜像&#xff08;drone产生的残余镜像文件&#xff09; docker system prune -a一、清理服务器磁盘 1、查找大文件 在Ubuntu系统中&#xff0c;你可以使用find命令来查找大文件。find命令是一个强大的…...

2024年资阳市企业技术中心申报条件、流程要求及支持政策须知

第一章 总则 第一条 为深入贯彻中央、省、市大力实施创新驱动发展战略的部署要求&#xff0c;进一步强化企业技术创新主体地位&#xff0c;引导和支持企业增强技术创新能力&#xff0c;健全技术创新市场导向机制&#xff0c;规范我市企业技术中心&#xff08;下称“市企业技术…...

社交媒体数据恢复:如流

如流&#xff0c;原名百度Hi&#xff0c;是百度公司开发的一款即时通讯软体。百度Hi具备文字消息、视讯、通话、文件传输等功能。 查找备份&#xff1a;如果您之前有备份如流中的数据&#xff0c;您可以尝试从备份中恢复。如流支持备份至云端&#xff0c;如百度网盘等。 联系客…...

【微信小程序开发(从零到一)【婚礼邀请函】制作】——任务分析和效果实现的前期准备(1)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…...

独孤思维:模仿别人赚钱太难,很痛苦

01 独孤早年混群的时候&#xff0c;想着成为群红&#xff0c;引流。 结果不得其法&#xff0c;别人要什么项目&#xff0c;我就把满是钩子的副业资料发群里。 被群主踢了出去。 我当时还不理解。 后来自己做了社群以后&#xff0c;才明白&#xff0c;这种行为&#xff0c;…...

图片转base64【Vue + 纯Html】

1.template <el-form-item label"图片"><div class"image-upload-container"><input type"file" id"imageUpload" class"image-upload" change"convertToBase64" /><label for"imageU…...

【从零开始学习Redis | 第十一篇】快速介绍Redis持久化策略

前言&#xff1a; Redis 作为一种快速、高效的内存数据库&#xff0c;被广泛应用于缓存、消息队列、会话存储等场景。然而&#xff0c;由于其特性是基于内存的&#xff0c;一旦服务器进程退出&#xff0c;内存中的数据就会丢失。为了解决这一问题&#xff0c;Redis 提供了持久…...

在Ubuntu中如何解压zip压缩包??

2024年5月15日&#xff0c;周三上午 使用 unzip 命令 unzip 文件名.zip这会将压缩包中的内容解压到当前目录。如果想解压到特定目录&#xff0c;可以使用 -d 选项&#xff0c;例如&#xff1a; unzip 文件名.zip -d 目标目录使用 7-zip 还可以安装 7-zip 工具来解压 ZIP 文件。…...

LeetCode 126题:单词接龙 II

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容&#xff0c;和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣&#xff01; 推荐&#xff1a;数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航&#xff1a; LeetCode解锁100…...

5.14(Vue2)

1.单页应用程序是指所有功能都在一个html页面上 单页面应用程序&#xff0c;之所以开发效率高&#xff0c;性能好&#xff0c;应用体验好&#xff0c;最大的原因就是&#xff1a;页面按需更新。 2.Vue中的路由 路径和组件的映射关系 Vue中的路由插件&#xff1a;VueRouter&…...

使用openssl生成自签名证书

使用openssl生成自签名证书 1. 交互式生成2. 一步生成参考 1. 交互式生成 自签名 SSL 证书的生成涉及一个简单的 3 步过程&#xff1a; 步骤 1&#xff1a;创建服务器私钥 openssl genrsa -out cert.key 2048步骤 2&#xff1a;创建证书签名请求 (CSR) openssl req -new -k…...

【java】泛型

文章目录 1. 什么是泛型&#xff1f;1.1 背景1.2 泛型的概念1.3 泛型的好处 2. 泛型类、接口...2.1 泛型类2.2 从泛型类派生子类2.2.1 子类也是泛型类&#xff0c;子类和父类的泛型类型要一致2.2.2 子类不是泛型类&#xff0c;父类要明确泛型的数据类型 2.3 泛型接口2.4 泛型方…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

Springboot社区养老保险系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;社区养老保险系统小程序被用户普遍使用&#xff0c;为方…...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要&#xff0c;uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件&#xff0c;需要安装才能使用。 一、安装扩展插件 安装方法&#xff1a; 1.访问uniapp官方文档组件部分&#xff1a;组件使用的入门教程 | uni-app官网 点击左侧…...

[拓扑优化] 1.概述

常见的拓扑优化方法有&#xff1a;均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有&#xff1a;有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...