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

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

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

相关文章

通过Aop测试业务层万次执行效率

前言 在开发复杂的应用程序时&#xff0c;业务层的效率通常是一个关键问题。为了保证系统的高性能和稳定性&#xff0c;我们需要及时发现并解决潜在的性能问题。本文将介绍如何利用 AOP 技术来测试业务层的效率&#xff0c;为系统性能优化提供有力支持。 1. 什么是 AOP&#x…

B/S版+java开发的医院绩效考核系统maven+Visual Studio Code 医院绩效考核管理系统 提升医疗服务质量的关键

B/S版java开发的医院绩效考核系统mavenVisual Studio Code 医院绩效考核管理系统 提升医疗服务质量的关键 医院绩效评价系统的建设&#xff0c;优化医院绩效管理体系&#xff0c;规范化工作目标的设计、沟通、评价与反馈&#xff0c;改进和提供医院管理人员的管理能力和成效&am…

从CSDN搬家到微信公众号

博主将会在微信公众号里不断输出精品内容&#xff0c;陪伴大家共同成长。 如果你对博主的经历感兴趣&#xff0c;或者对博主的IT技术感兴趣&#xff0c;欢迎关注我的微信公众号&#xff0c;阅读我的技术文章&#xff0c;免费获取各种IT资源。也可以加我的微信成为我的好友&…

面对.halo勒索病毒,如何有效防范与应对?

导言&#xff1a; 随着网络技术的不断发展&#xff0c;网络安全问题也日益凸显。其中&#xff0c;勒索病毒作为一种极具破坏性的网络攻击手段&#xff0c;近年来在全球范围内频发。其中&#xff0c;.halo勒索病毒作为勒索病毒家族中的一员&#xff0c;其危害性和传播性不容忽视…

react18【系列实用教程】useEffect —— 副作用操作 (2024最新版)

什么是副作用操作&#xff1f; useEffect 用于编写由渲染本身引起的对接组件外部的操作&#xff08;官方称呼为&#xff1a;副作用操作&#xff09; 以下情况会触发页面渲染 初次加载页面&#xff08;组的挂载&#xff09;响应式变量发生变化&#xff0c;触发页面根据新值重新…

【数据结构】栈和队列专题

前言 上篇博客我们讨论了栈和队列的有关结构&#xff0c;本篇博客我们继续来讨论有关栈和队列习题 这些题算是经典了 &#x1f493; 个人主页&#xff1a;小张同学zkf ⏩ 文章专栏&#xff1a;数据结构 若有问题 评论区见&#x1f4dd; &#x1f389;欢迎大家点赞&#x1f44d…

SwiftUI中三大渐变色的介绍

在SwiftUI中&#xff0c;渐变色是一种常用的视觉效果&#xff0c;用于创建平滑过渡的颜色变化。通过使用渐变色&#xff0c;我们可以实现丰富多彩的界面设计&#xff0c;增强用户体验。 1. 渐变色的种类和用途 种类&#xff1a; 线性渐变&#xff08;Linear Gradient&#x…

JavaEE 初阶篇-深入了解网络原理 TCP/IP 协议

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 TCP 协议概述 1.1 TCP 协议格式 2.0 TCP 协议的特性 2.1 确认应答 2.2 超时重传 2.2.1 超时的时间如何确定&#xff1f; 2.3 连接管理 2.3.1 三次握手 2.3.2 四次…

OSPF工作过程

1.OSPF的数据包 hello包——周期性的发现&#xff0c;建立以及保活邻居关系 hello时间 --- 10S 死亡时间 --- 4倍的hello时间 --- 40S RID --- 1&#xff0c;全网唯一;2&#xff0c;格式统一---- 格式要求和IP地址一样&#xff0c;由32位二进制构成&#xff0c;使用点分十进制…

Matter 1.3版标准新出炉,支持更多智能家居/家电/能源等设备

5月8日&#xff0c;CSA连接标准联盟正式发布了Matter 1.3标准&#xff0c;过去CSA一直保持约每六个月一次的标准更新节奏。 图源CSA连接标准联盟官方 获得一系列改进的Matter 1.3标准&#xff0c;将提升设备的互操作性&#xff0c;扩展支持的设备类别&#xff0c;并增强整个智…

在Linux上安装并启动Redis

目录 安装gcc环境 上传redis文件 启动redis-server 后台启动redis-server 查看redis启动状态 参考文章&#xff1a;Linux 安装 Redis 及踩坑 - 敲代码的阿磊 - 博客园 (cnblogs.com) 准备&#xff1a;打开VMware Workstation&#xff0c;创建一个虚拟机&#xff0c;进入管…

第 5 篇 : 多节点Netty服务端(可扩展)

说明 前面消息互发以及广播都是单机就可以完成测试, 但实际场景中客户端的连接数量很大, 那就需要有一定数量的服务端去支撑, 所以准备虚拟机测试。 1. 虚拟机准备 1.1 准备1个1核1G的虚拟机(160), 配置java环境, 安装redis和minio 1.2 准备6个1核1G的空虚拟机(161到166), …