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

news2024/9/20 16:50:59

目录

  • 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 中的极坐标图、对数坐标图和隐函数的绘制方法。这些工具可以帮助您更好地理解数据的趋势和特征。通过灵活运用这些绘图命令,您可以创建更加直观和专业的数据可视化。

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

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

相关文章

Javaの运算符 Day5

1. 算数运算符 1.1 二元运算符(两个操作数)的算数运算符 操作符描述求和-求差*求积/求商%求余 代码举例 public class TestOperator {public static void main(String[] args) {int a 20;int b 12;System.out.println(a b);System.out.println(a …

【算法】队列与BFS

【ps】本篇有 4 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1)N 叉树的层序遍历 .1- 题目解析 .2- 代码编写 2)二叉树的锯齿形层序遍历 .1- 题目解析 .2- 代码编写 3)二叉树最大宽度 .1- 题目解析 .2- 代码编写 4&#xf…

UART协议

目录 一、概述二、帧格式起始位数据位奇偶校验位停止位 三、数据传输过程四、串行通信接口RS232RS422RS485 五、UART环回程序设计 参考:正点原子FPGA开发指南 一、概述 UART(通用异步收发器)是一种异步、全双工的串行通信总线,在…

CGAL 从DSM到DTM holefilling remeshing

CGAL 从DSM到DTM holefilling & remeshing 上一节简单地删除被建筑物覆盖的大片区域中的顶点会导致大的Delaunay三角面,从而得到了较差的DTM,所以一个额外的步骤可以帮助产生更好的形状网格:删除大于阈值的面,并用孔洞填充算法进行三角化…

C++速通LeetCode简单第17题-爬楼梯

思路要点:将问题转化为求斐波那契数列的第n项,然后迭代。 思路分析:最后一次爬的阶数不是1就是2,假设爬n阶的方法数是f(n),假设最后一次爬1阶,那么爬前面的 n-1阶的方法数是f(n-1);假设最后一次…

力扣题解2848

大家好,欢迎来到无限大的频道。 今日继续给大家带来力扣题解。 题目描述(简单): 与车相交的点 给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i,nums[i] [starti, endi] &…

熵权法详细讲解+Python代码实现

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

大数据新视界 --大数据大厂之 Cassandra 分布式数据库:高可用数据存储的新选择

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

基于单片机的超声波液位检测系统(论文+源码)

1总体设计 本课题为基于单片机的超声波液位检测系统的设计,系统的结构框图如图2.1所示。其中包括了按键模块,温度检测模块,超声波液位检测模块,显示模块,蜂鸣器等器件设备。其中,采用STC89C52单片机作为主…

2.5 Trigger源码分析 -- ant-design-vue系列

Trigger源码分析 – ant-design-vue系列 1 概述 源码地址: https://github.com/vueComponent/ant-design-vue/blob/main/components/vc-trigger/Trigger.tsx 在源码的实现中,Trigger组件主要有两个作用: 使用Portal组件,把Pop…

构建响应式 Web 应用:Vue.js 基础指南

构建响应式 Web 应用:Vue.js 基础指南 一 . Vue 的介绍1.1 介绍1.2 好处1.3 特点 二 . Vue 的快速入门2.1 案例 1 : 快速搭建 Vue 的运行环境 , 在 div 视图中获取 Vue 中的数据2.2 案例 2 : 点击按钮执行 vue 中的函数输出 vue 中 data 的数据2.3 小结 三 . Vue 常…

Leetcode3282. 到达数组末尾的最大得分

Every day a Leetcode 题目来源&#xff1a;3282. 到达数组末尾的最大得分 解法1&#xff1a;动态规划 代码&#xff1a; class Solution { public:long long findMaximumScore(vector<int>& nums) {if (nums.size() < 1) return 0LL;int n nums.size();vect…

JavaScript高级——循环遍历加监听

本文分享到这里&#xff0c;欢迎大家评论区相互讨论学习&#xff0c;下一篇继续分享JavaScript高级学习中的闭包的内容。

linux进程间通信——学习与应用命名管道, 日志程序的使用与实现

前言&#xff1a;本节主要讲解linux进程间通信里面的命名管道&#xff0c; 命名管道和我们学过的匿名管道是类似的。 博主将会带着友友们先看一下原理&#xff0c; 然后就会着手使用以下命名管道是怎么使用的。 最后我们还会试着引入日志系统&#xff0c; 我们从本节开始就会引…

npm 安装 与 切换 淘宝镜像

一、镜像源 npm默认镜像源是国外的&#xff0c;安装依赖速度较慢&#xff0c;使用国内的镜像源速度会快一些。 1、设置淘宝镜像源&#xff1a; #最新地址 淘宝 NPM 镜像站喊你切换新域名啦! npm config set registry https://registry.npm.taobao.org&#xff08;弃用了&…

网站采用H5+CSS3开发的优势和劣势

在现代网站开发中&#xff0c;HTML5和CSS3的结合使用已经成为一种趋势。以下是其优势和劣势的介绍&#xff1a; 优势 增强的多媒体支持&#xff1a;HTML5引入了新的标签&#xff0c;使开发者能够轻松嵌入音频、视频和图形&#xff0c;无需依赖第三方插件如Flash。这大大简化了…

【AI大模型】ChatGPT模型原理介绍(下)

目录 &#x1f354; GPT-3介绍 1.1 GPT-3模型架构 1.2 GPT-3训练核心思想 1.3 GPT-3数据集 1.4 GPT-3模型的特点 1.5 GPT-3模型总结 &#x1f354; ChatGPT介绍 2.1 ChatGPT原理 2.2 什么是强化学习 2.3 ChatGPT强化学习步骤 2.4 监督调优模型 2.5 训练奖励模型 2.…

基于单片机的风机故障检测装置的设计与实现(论文+源码)

1 系统总体设计方案 通过对风机故障检测装置的设计与实现的需求、可行性进行分析&#xff0c;本设计风机故障检测装置的设计与实现的系统总体架构设计如图2-1所示&#xff0c;系统风机故障检测装置采用STM32F103单片机作为控制器&#xff0c;并通过DS18B20温度传感器、ACS712电…

macOS使用brew安装并配置python环境

1.确认已安装brew环境,如没有安装,参考: macOS系统Homebrew工具安装及使用-CSDN博客 2.安装python python安装成功 3.添加pip路径到/etc/paths 4.查看python与pip默认安装版本

【leetcode】树形结构习题

二叉树的前序遍历 返回结果&#xff1a;[‘1’, ‘2’, ‘4’, ‘5’, ‘3’, ‘6’, ‘7’] 144.二叉树的前序遍历 - 迭代算法 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,…