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

MATLAB 可视化基础:绘图命令与应用

目录

  • 1. 绘制子图
    • 1.1基本绘图命令
    • 1.2. 使用 subplot 函数
    • 1.3. 绘图类型
  • 2.MATLAB 可视化进阶(以下代码均居于以上代码的数据定义上实现)
    • 2.1. 极坐标图
    • 2.3. 隐函数的绘制
  • 3.总结

在数据分析和科学计算中,数据可视化是理解和解释结果的关键工具。今天,我将分享一些基本的 MATLAB 绘图命令,帮助大家快速上手数据可视化。

1. 绘制子图

1.1基本绘图命令

首先,我们使用 linspace 函数生成一个在 0 到 3 之间均匀分布的 20 个点。接着,我们定义了线性、二次和三次方函数,并将它们绘制在同一图中。

x = linspace(0, 3, 20); % 在 0 到 3 之间等距取 20 个点
y1 = x;                  % y1 = x
y2 = x.^2;               % y2 = x^2
y3 = x.^3;               % y3 = x^3% 绘制图形
plot(x, y1, 'red-', x, y2, 'blue*--', x, y3, 'black-o');
set(gca, 'xlim', [0 3], 'xtick', [0:0.1:3]); % 设置 x 轴范围和刻度
set(gca, 'color', 'none'); % 背景色设置为无色
title('示意图');          % 图形标题
xlabel('x的变化');        % x 轴标签
ylabel('y的变化');        % y 轴标签
text(0.5, 25, '说明示例', 'fontname', '宋体'); % 添加注释
legend('线性y=x', '二次方y=x^2', '三次方y=x^3', 'location', 'northeast'); % 图例
box off;                  % 半框
axis square;             % 产生正方形坐标系

其中:
plot 函数用于绘制数据曲线,支持不同的颜色和样式。
set(gca,…) 用于设置坐标轴属性。
legend 提供图例,帮助识别不同的数据系列。

1.2. 使用 subplot 函数

在同一窗口中,我们可以使用 subplot 函数将绘图区域分为多个子图。以下是绘制三角函数的示例:


x = 0:0.1:2*pi; % x 从 0 到 2π
y1 = sin(x);    % 正弦
y2 = cos(x);    % 余弦
y3 = tan(x);    % 正切
y4 = sin(x) .* cos(x); % 正弦乘余弦subplot(2, 2, 1);
plot(x, y1, 'blacko'); % 第一子图:正弦函数
subplot(2, 2, 2);
plot(x, y2, 'ro');     % 第二子图:余弦函数
subplot(2, 2, 3);
plot(x, y3, 'bo');     % 第三子图:正切函数
subplot(2, 2, 4);
plot(x, y4, 'go');     % 第四子图:正弦乘余弦

其中
subplot(m, n, p) 将图形窗口分为 m 行 n 列的子图,并激活第 p 个子图。
每个子图可以独立绘制不同的数据,便于比较。

1.3. 绘图类型

MATLAB 还支持多种绘图类型,例如条形图、填充图、阶梯图和杆图。以下是这些图形的示例:


x = 0:0.35:7;
y = 2 * exp(-0.5 * x); % 指数衰减函数subplot(2, 2, 1);
bar(x, y, 'g');         % 条形图
title('条形图');
axis([0, 7, 0, 2]);subplot(2, 2, 2);
fill(x, y, 'r');       % 填充图
title('填充图');
axis([0, 7, 0, 2]);subplot(2, 2, 3);
stairs(x, y, 'b');     % 阶梯图
title('阶梯图');
axis([0, 7, 0, 2]);subplot(2, 2, 4);
stem(x, y, 'k');       % 杆图
title('杆图');
axis([0, 7, 0, 2]);

bar 绘制条形图,适合展示离散数据的分布。
fill 创建填充图,适合展示区域数据。
stairs 和 stem 分别绘制阶梯图和杆图,常用于显示离散数据的变化。

在这里插入图片描述

2.MATLAB 可视化进阶(以下代码均居于以上代码的数据定义上实现)

在 MATLAB 中的一些高级绘图技巧,包括极坐标图、对数坐标图和隐函数的绘制。这些技术将帮助您更好地展示和分析数据。

2.1. 极坐标图

极坐标图是以极坐标系而非直角坐标系绘制数据的一种方式,适合展示与角度和半径相关的数据。


theat = 0:0.1:2*pi; % 角度范围
y1 = sin(1/2 * theat); % 第一个极径
y2 = sin(theat) .* cos(theat); % 第二个极径subplot(2, 2, 1)
plot(theat, y1, 'r'); % 第一子图:直角坐标系下的极径
subplot(2, 2, 2)
plot(theat, y2, 'b'); % 第二子图:直角坐标系下的极径
subplot(2, 2, 3)
polar(theat, y1, 'r'); % 第三子图:极坐标图
grid on; % 开启网格
subplot(2, 2, 4)
polar(theat, y2, 'b'); % 第四子图:极坐标图
grid on; % 开启网格

解释
polar 函数用于绘制极坐标图,输入参数为角度和极径。
通过 subplot 函数,我们可以在一个窗口中展示多个图形,使得比较不同数据集变得更加直观。
在这里插入图片描述

  1. 对数坐标图
    对数坐标图有助于展示数据的指数增长,适用于展示范围较大的数据值。
x = 1:1000; 
y = x.^2 + exp(x); % 计算 y 值subplot(2, 2, 1)
plot(x, y, 'r-'); % x 轴线性,y 轴线性
subplot(2, 2, 2)
semilogx(x, y, 'b-'); % x 轴对数,y 轴线性
subplot(2, 2, 3)
semilogy(x, y, 'm-'); % x 轴线性,y 轴对数
subplot(2, 2, 4)
loglog(x, y, 'k-'); % x 轴对数,y 轴对数

解释
semilogx 和 semilogy 分别用于绘制 x 轴对数和 y 轴对数的图形。
loglog 函数绘制 x 轴和 y 轴均为对数坐标的图形,适合展示指数级增长的数据。

在这里插入图片描述

2.3. 隐函数的绘制

MATLAB 的 ezplot 函数可以方便地绘制隐函数和参数方程。

subplot(3, 1, 1)
ezplot('sin(x)', [0, 2*pi]); % 显函数 y=f(x)
subplot(3, 1, 2)
ezplot('cos(x) + sin(y)', [-2, 2, -2, 2]); % 隐函数 f(x,y)=0
subplot(3, 1, 3)
ezplot('3*t', 'sin(t)', [0, 2*pi]); % 参数方程 x=f(t), y=f(t)

解释
ezplot 使得绘制函数变得简单,支持显函数、隐函数和参数方程的绘制。
通过指定坐标范围,可以控制绘图区域。
在这里插入图片描述

3.总结

在这篇博文中,我们介绍了 MATLAB 中的极坐标图、对数坐标图和隐函数的绘制方法。这些工具可以帮助您更好地理解数据的趋势和特征。通过灵活运用这些绘图命令,您可以创建更加直观和专业的数据可视化。

相关文章:

MATLAB 可视化基础:绘图命令与应用

目录 1. 绘制子图1.1基本绘图命令1.2. 使用 subplot 函数1.3. 绘图类型 2.MATLAB 可视化进阶(以下代码均居于以上代码的数据定义上实现)2.1. 极坐标图2.3. 隐函数的绘制 3.总结 在数据分析和科学计算中,数据可视化是理解和解释结果的关键工具。今天,我将…...

掌握 Python 异常处理的实战技巧:从基础到高级应用20240918

掌握 Python 异常处理的实战技巧:从基础到高级应用 引言 在 Python 编程中,异常处理是保障代码稳健性和可靠性的关键要素之一。无论是在网络请求、资源访问,还是复杂的业务逻辑中,异常处理都不可或缺。本文将从 Python 异常的基…...

One API 部署与配置指南

技术文档:One API 部署与配置指南 概述 One API 是一个多功能的 API 管理平台,支持自定义设置、用户管理、多种登录注册方式、主题切换等。本文档提供了详细的部署和配置指南,帮助用户快速搭建和使用 One API。 部署 基于 Docker 部署 D…...

国密起步7:BouncyCastle使用SM4自定义格式加解密C#版

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 github源码指引的指引-CSDN博…...

Qt优秀开源项目之二十三:QSimpleUpdater

QSimpleUpdater是开源的自动升级模块,用于检测、下载和安装更新。 github地址:https://github.com/alex-spataru/QSimpleUpdater QSimpleUpdater目前Star不多(911个),但已在很多开源项目看到其身影,比如Not…...

使用 Nmap 进行 SSL/TLS 加密套件枚举

1. Nmap 简介 Nmap(Network Mapper)是一个开源的网络探测和安全审计工具。它广泛用于扫描网络并发现设备、端口及服务,同时也支持多种脚本来进行更高级的安全扫描。Nmap 的 -sV 参数可以用于探测开放端口上的服务及版本信息,配合…...

探索 Python 的火焰:Fire 库的神秘力量

文章目录 🔥 探索 Python 的火焰:Fire 库的神秘力量第一部分:背景介绍第二部分:Fire 库是什么?第三部分:如何安装 Fire?第四部分:简单库函数使用方法第五部分:场景应用第…...

【Day14-单例设计模式动态代理】

单例设计模式 什么是设计模式(Design pattern) ? 一个问题通常有n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。设计模式有20多种,对应20多种软件开发中会遇到的问题…...

代码随想录训练营Day7 | 454.四数相加II | 383. 赎金信 | 15. 三数之和 | 18. 四数之和

代码随想录 (programmercarl.com) Leetcode 454. 四数相加 II 题目描述 给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] B[j] C[k] D[l] 0。 为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N&#…...

C++和OpenGL实现3D游戏编程【目录】

欢迎来到zhooyu的专栏。 个人主页:【zhooyu】 文章专栏:【OpenGL实现3D游戏编程】 贝塞尔曲面演示: 贝塞尔曲面演示zhooyu 本专栏内容: 我们从游戏的角度出发,用C去了解一下游戏中的功能都是怎么实现的。这一切还是要…...

03-Mac系统PyCharm主题设置

目录 1. 打开PyCharm窗口 2. Mac左上角点击PyCharm,点击Settings 3. 点击第一项Appearance& Behavior 4. 点击Appearance 5. 找到Theme进行设置 1. 打开PyCharm窗口 2. Mac左上角点击PyCharm,点击Settings 3. 点击第一项Appearance& Behavi…...

Java并发的四大定律

每一个进入 Java 并发世界的人,都会不可避免地面临一系列问题:线程安全、并发控制、锁,以及共享资源。这些概念复杂又抽象,往往让人无从下手。幸运的是,业界早已总结出一些法则,这些法则为我们处理并发问题…...

java项目之基于springboot的贸易行业crm系统(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的基于springboot的贸易行业crm系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于sp…...

General OCR Theory: Towards OCR-2.0 via a Unified End-to-end Model

摘要 传统的OCR系统(OCR-1.0)越来越无法满足人们对智能处理人造光学字符的需求。在本文中,我们将所有人造光学信号(例如,普通文本、数学/分子公式、表格、图表、乐谱,甚至是几何形状)统称为“字…...

二十种编程语言庆祝中秋节

二十种编程语言庆祝中秋节 文章目录 二十种编程语言庆祝中秋节中秋快乐!家人们 🥳一 Python二 C三 C四 Java五 C#六 Perl七 Go八 Asp九 PHP十 JavaScript十一 JavaScript HTML十二 Visual Basic十三 早期 VB十四 Visual C十五 Delphi十六 Shell十七 Cobo…...

202409012在飞凌的OK3588-C的核心板上使用Rockchip原厂的Buildroot点MIPI屏【背光篇】

202409012在飞凌的OK3588-C的核心板上使用Rockchip原厂的Buildroot点MIPI屏【背光篇】 2024/9/12 10:44 缘起,拿到一块MIPI屏,需要使用飞凌的OK3588-C的核心板在Android12下点亮。 在飞凌的Linux R4下修改部分屏参之后即可直接点亮。 但是在飞凌的Andro…...

DMDRS搭建

DMDRS搭建 本次进行DMDRS工具的部署搭建以及使用 环境配置 操作系统及数据库配置 操作系统:使用CentOS7数据库:dm8_20240408_x86_rh7_64 服务器配置 实例名服务器IPDM1192.168.19.7(源DMDRS)DM2192.168.19.4(目的…...

【油猴脚本】00006 案例 Tampermonkey油猴脚本自定义表格列名称,自定义表格表头,自定义表格的thead里的td

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【油…...

JS - 获取剪切板内容 Clipboard API

目录 1,需求最终效果 2,实现示例 3,注意点1,只支持安全上下文环境2,只能读取当前页面的剪切板3,权限获取问题4,获取内容的 MIME_TYPE 问题1,文本内容2,图片内容 5&#x…...

Qt自动打开文件夹并高亮文件

在Qt中,如果你想要打开一个文件夹并在文件管理器中高亮显示(选中)某个文件,你可以使用以下方法: 对于Windows系统,你可以使用QProcess来启动explorer命令,并带上/select,参数来高亮显示文件。以…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...