Matlab绘图系列教程-Matlab 34 种绘图函数示例(下)
Matlab绘图系列教程:揭秘高质量科学图表的绘制与优化
文章目录
- Matlab绘图系列教程:揭秘高质量科学图表的绘制与优化
- 第一部分:入门指南
- 1.1 简介
- 关于本教程的目的与范围
- Matlab绘图在科学研究中的重要性
- 1.2 准备工作
- 安装Matlab及其工具箱
- 1.3 Matlab34种绘图函数示例(下)
- ribbon函数:绘制带状图
- polarhistogram函数:绘制极坐标直方图
- contour3函数:绘制三维等高线图
- scatter3函数:绘制三维散点图
- pareto函数:绘制帕累托图
- scatterhist函数:绘制散点图和直方图组合图
- bar3函数:绘制三维柱状图
- pie3函数:绘制三维饼图
- compass函数:绘制极坐标箭头图
- wordcloud函数:绘制词云图
- parallelplot函数:绘制平行坐标图
- spiderplot函数:绘制蛛网图
- bode函数:绘制频率响应图
- geoplot函数:绘制地理坐标图
- comet3函数:绘制三维彗星轨迹图
- quiver3函数:绘制三维矢量场图
- dendrogram函数:绘制树状图
- spy函数:绘制稀疏矩阵图
- 1.4 定制和交互操作
- 1.5 结论
第一部分:入门指南
1.1 简介
关于本教程的目的与范围
欢迎来到Matlab绘图指南!本教程的目标是帮助您从一个绘图小白蜕变为Matlab绘图大神。无论您是科学研究人员、学生还是对数据可视化感兴趣的爱好者,本教程将为您揭示绘制高质量科学图表的技巧和策略,让您的图表在论文和报告中脱颖而出。
Matlab绘图在科学研究中的重要性
您可能会问,为什么要选择Matlab作为绘图工具呢?好问题!Matlab绘图功能强大而灵活,被广泛应用于科学研究领域。通过精心绘制的图表,您可以更好地展示数据和结果,让您的研究更具说服力和影响力。因此,掌握Matlab绘图技巧将成为您在科研道路上的得力助手。
1.2 准备工作
安装Matlab及其工具箱
在踏上绘图之旅之前,我们首先要确保您已成功安装Matlab及其必要的工具箱。如果您还没有安装Matlab,别担心!MathWorks官方网站将为您提供下载和安装指南。
1.3 Matlab34种绘图函数示例(下)
Matlab是一种功能强大的科学计算软件和编程语言,它在数据可视化方面有着出色的表现。Matlab提供了各种绘图函数和工具,使用户能够创建高质量的二维和三维图形,并进行各种定制和交互操作。
ribbon函数:绘制带状图
% 创建数据
x = 0:0.1:2*pi;
y = sin(x);% 绘制带状图
ribbon(x, y);% 添加标题和标签
title('Ribbon Plot');
xlabel('X');
ylabel('Y');% 添加颜色栏
colorbar;
polarhistogram函数:绘制极坐标直方图
% 创建数据
theta = 0:0.1:2*pi;
data = 1/2*theta;% 绘制极坐标直方图
polarhistogram(theta, data, 'LineWidth', 1.5);% 添加标题
title('Polar Histogram');
contour3函数:绘制三维等高线图
% 创建数据
x = -2:0.2:2;
y = -2:0.2:2;
[X, Y] = meshgrid(x, y);
Z = X.^2 + Y.^2;% 绘制三维等高线图
contour3(X, Y, Z);% 添加标题和标签
title('3D Contour Plot');
xlabel('X');
ylabel('Y');
zlabel('Z');% 添加颜色栏
colorbar;
scatter3函数:绘制三维散点图
% 创建数据
x = randn(100, 1);
y = randn(100, 1);
z = randn(100, 1);% 绘制三维散点图
scatter3(x, y, z, 'filled');% 添加标题和标签
title('3D Scatter Plot');
xlabel('X');
ylabel('Y');
zlabel('Z');% 添加网格
grid on;
pareto函数:绘制帕累托图
% 创建数据
categories = {'Category A', 'Category B', 'Category C', 'Category D'};
values = [20 30 15 35];% 绘制帕累托图
pareto(values, categories);% 添加标题和标签
title('Pareto Chart');
xlabel('Categories');
ylabel('Values');
scatterhist函数:绘制散点图和直方图组合图
% 创建数据
x = randn(1000, 1);
y = randn(1000, 1);% 绘制散点图和直方图组合图
scatterhist(x, y, 'Marker', 'o', 'MarkerSize', 6);% 添加标题和标签
title('Scatterhist Plot');
xlabel('X');
ylabel('Y');
bar3函数:绘制三维柱状图
% 创建数据
x = 1:5;
y = 1:6;
data = rand(6, 5);% 绘制三维柱状图
bar3(x, data);% 添加标题和标签
title('3D Bar Plot');
xlabel('X');
ylabel('Y');
zlabel('Data');% 添加颜色栏
colorbar;
pie3函数:绘制三维饼图
% 创建数据
data = [25 15 10 20 30];% 绘制三维饼图
pie3(data);% 添加标题
title('3D Pie Chart');
compass函数:绘制极坐标箭头图
% 创建数据
theta = 0:pi/4:2*pi;
r = ones(size(theta));% 绘制极坐标箭头图
compass(r, theta);% 设置箭头长度
h = findobj(gca, 'Type', 'line');
set(h, 'MarkerSize', 8);
wordcloud函数:绘制词云图
% 创建数据
words = {'apple', 'banana', 'orange', 'grape', 'watermelon', 'pineapple'};
counts = [10, 5, 8, 12, 6, 9];% 绘制词云图
wordcloud(words, counts);% 添加标题
title('Word Cloud');
parallelplot函数:绘制平行坐标图
% 创建数据
data = randn(100, 5);% 绘制平行坐标图
parallelplot(data, 'LineWidth', 1.5);% 添加标题和标签
title('Parallel Coordinate Plot');
xlabel('Variables');
ylabel('Values');
spiderplot函数:绘制蛛网图
% 创建数据
categories = {'Category A', 'Category B', 'Category C', 'Category D'};
data = [0.6, 0.8, 0.5, 0.7];% 绘制蛛网图
spiderplot(categories, data, 'Marker', 'o', 'LineWidth', 1.5);% 添加标题
title('Spider Plot');
bode函数:绘制频率响应图
% 创建系统传递函数
num = [1];
den = [1, 1, 1];
sys = tf(num, den);% 绘制频率响应图
bode(sys);% 添加标题
title('Bode Plot');
geoplot函数:绘制地理坐标图
% 创建地理数据
lat = [40.7128, 34.0522, 51.5074];
lon = [-74.0060, -118.2437, -0.1278];% 绘制地理坐标图
geoplot(lat, lon, 'o', 'MarkerSize', 10);% 添加标题
title('Geographic Plot');
comet3函数:绘制三维彗星轨迹图
绘制三维彗星轨迹图
% 创建数据
t = linspace(0, 10*pi, 1000);
x = sin(t);
y = cos(t);
z = t;% 绘制三维彗星轨迹图
comet3(x, y, z);% 添加标题和标签
title('Comet 3D Plot');
xlabel('X');
ylabel('Y');
zlabel('Z');% 创建动画帧并保存为GIF
filename = 'comet3_animation.gif';
for i = 1:length(t)% 在每个时间步骤处绘制当前位置的点hold on;plot3(x(i), y(i), z(i), 'ro', 'MarkerSize', 5);% 设置坐标轴范围xlim([-1.5 1.5]);ylim([-1.5 1.5]);zlim([0 max(z)]);% 每个时间步骤的绘图都会被捕获并写入GIF文件frame = getframe(gcf);im = frame2im(frame);[imind, cm] = rgb2ind(im, 256);if i == 1% 如果是第一帧,则创建新的GIF文件imwrite(imind, cm, filename, 'gif', 'Loopcount', inf, 'DelayTime', 0.05);else% 如果不是第一帧,则追加到现有的GIF文件中imwrite(imind, cm, filename, 'gif', 'WriteMode', 'append', 'DelayTime', 0.05);end% 在下一帧绘制之前清除当前位置的点cla;
enddisp('动画保存成功!');
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jJyJRmmS-1688491223594)(https://mweb-1307664364.cos.ap-chengdu.myqcloud.com/2023/07/05/comet3animation1.gif)]
quiver3函数:绘制三维矢量场图
% 创建数据
[x, y, z] = meshgrid(-2:0.5:2, -2:0.5:2, -2:0.5:2);
u = cos(x).*sin(y).*cos(z);
v = sin(x).*cos(y).*sin(z);
w = cos(x).*cos(y).*sin(z);% 绘制三维矢量场图
quiver3(x, y, z, u, v, w);% 添加标题和标签
title('3D Vector Field');
xlabel('X');
ylabel('Y');
zlabel('Z');
dendrogram函数:绘制树状图
% 创建数据
Z = linkage(rand(10, 3), 'ward');% 绘制树状图
dendrogram(Z);% 添加标题
title('Dendrogram');
spy函数:绘制稀疏矩阵图
% 创建稀疏矩阵
A = sparse(eye(5));% 绘制稀疏矩阵图
spy(A);% 添加标题
title('Sparse Matrix Plot');
这些是更多Matlab中常用的基本绘图函数的示例代码和相关注释。请注意,这些示例代码避免了与之前提供的示例重复。你可以根据需要自由修改和调整这些代码,以适应你的具体需求。
1.4 定制和交互操作
Matlab提供了丰富的选项和函数,使用户能够定制图形样式、颜色、轴标签、图例等。此外,Matlab的图形窗口还提供了交互式工具,例如缩放、旋转和平移等功能,方便用户进行图形的浏览和操作。
1.5 结论
Matlab提供了丰富而灵活的绘图功能,能够满足科学研究和数据可视化的各种需求。通过绘制基本图形、自定义图表属性和使用更高级的绘图技巧,您可以创建出令人印象深刻的图表,将数据和结果以清晰而优雅的方式展示出来。
在下一部分中,我们将更深入地探索Matlab绘图的各个方面,并介绍一些高级技巧和实用技巧。敬请期待!
相关文章:

Matlab绘图系列教程-Matlab 34 种绘图函数示例(下)
Matlab绘图系列教程:揭秘高质量科学图表的绘制与优化 文章目录 Matlab绘图系列教程:揭秘高质量科学图表的绘制与优化第一部分:入门指南1.1 简介关于本教程的目的与范围Matlab绘图在科学研究中的重要性 1.2 准备工作安装Matlab及其工具箱 1.3 …...

【Vue+Django】Training Management Platform Axios并发请求 - 20230703
需求陈述 由于API是特定单位/特定类别/特定教学方式的数据,故汇总数据需要循环请求不同单位/不同类别/不同教学方式。 技术要点 1.axios并发请求 2.JS for循环 3.Vue数组中出现 ob :Observer无法取值问题的解决方法 4.将数据转化为数组 5.一次请求所有数据后&…...

smart Spring:自定义注解、拦截器的使用(更新中...)
文章目录 〇、使用自定义注解的好处和工作原理一、如何使用自定义注解1.自定义一个注解2.在类、属性、方法上进行使用3.元注解 二、使用拦截器的好处和工作原理三、如何使用拦截器参考 本博客源码: 〇、使用自定义注解的好处和工作原理 自定义注解是Java语言提供的…...

php导出pdf
插件官网:TCPDF 博主用的是tp6框架 、tcpdf插件 composer require tecnickcom/tcpdf --ignore-platform-reqs 后面是忽略平台要求的参数 ---------------中文乱码start------------------ 关于中文乱码问题: 网上说的下载字体放入fonts 利用tools…...
【ECMAScript6_2】字符串
1、字符的Unicode表示法 ES6 加强了对 Unicode 的支持,允许采用\uxxxx形式表示一个字符,其中xxxx表示字符的 Unicode 码点。(\u0000-\uFFFF) 码点超过取值范围之后不能正确解读,但是只要给码点加上{}就可以正确解读。 …...

37.RocketMQ之Broker消息存储源码分析
highlight: arduino-light 消息存储文件 rocketMQ的消息持久化在我们在搭建集群时都特意指定的文件存储路径,进入指定的store目录下就可以看到。 下面介绍各文件含义 CommitLog 存储消息的元数据。produce发出的所有消息都会顺序存入到CommitLog文件当中。 CommitLog由多个文件…...

RabbitMq应用延时消息
一.建立绑定关系 package com.lx.mq.bind;import com.lx.constant.MonitorEventConst; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.core.*; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annota…...
【WEB自动化测试】- 浏览器操作方法
一、常用方法 1. maximize_window() 最大化窗口 (重点) 说明:如果能够在打开页面时,全屏显示页面,就能尽最大可能加载更多的页面,提高可定位性 2. set_window_size(width, height) 设置浏览器窗口的大小 (了解) 场景࿱…...
VSCode设置鼠标滚轮滑动设置字体大小
1:打开"文件->首选项->设置 2 :打开settings.json文件 英文版这里有个坑 一般点击我下图右上角那个{ } 就可以打开了 在 设置的json 文件中加入如下 “editor.mouseWheelZoom”: true { “editor.mouseWheelZoom”: true, “json.schemas”: [ ]}...

Spring MVC是什么?详解它的组件、请求流程及注解
作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 前言 本文将讲解Spring MVC是什么,它的优缺点与九大组件,以及它的请求流程与常用的注解。 目录 一、Spring MVC是什…...

基于Spring Boot的广告公司业务管理平台设计与实现(Java+spring boot+MySQL)
获取源码或者论文请私信博主 演示视频: 基于Spring Boot的广告公司业务管理平台设计与实现(Javaspring bootMySQL) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 后端:Java springboot框架 …...
docker 基本命令安装流程
docker 基本命令安装流程 1.更新Ubuntu的apt源索引 $ sudo apt-get update2.安装包允许apt通过HTTPS使用仓库 $ sudo dpkg --configure -a $ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common3.添加Docker官方GPG key $ curl -f…...

尚硅谷大数据Flink1.17实战教程-笔记02【Flink部署】
尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址:尚硅谷大数据Flink1.17实战教程从入门到精通_哔哩哔哩_bilibili 尚硅谷大数据Flink1.17实战教程-笔记01【Flink概述、Flink快速上手】尚硅谷大数据Flink1.17实战教程-笔记02【Flink部署】尚硅谷…...

【LeetCode每日一题合集】2023.7.3-2023.7.9
文章目录 2023.7.3——445. 两数相加 II(大数相加/高精度加法)2023.7.4——2679. 矩阵中的和2023.7.5——2600. K 件物品的最大和(贪心)代码1——贪心模拟代码2——Java一行 2023.7.6——2178. 拆分成最多数目的正偶数之和&#x…...

java企业工程项目管理系统平台源码
工程项目管理软件(工程项目管理系统)对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营,全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…...

软件设计模式与体系结构-设计模式-行为型软件设计模式-访问者模式
目录 二、访问者模式概念代码类图实例一:名牌运动鞋专卖店销售软件实例二:计算机部件销售软优缺点适用场合课程作业 二、访问者模式 概念 对于系统中的某些对象,它们存储在同一个集合中,具有不同的类型对于该集合中的对象&#…...

【LeetCode】503. 下一个更大元素 II
503. 下一个更大元素 II(中等) 方法:单调栈 「 对于找最近一个比当前值大/小」的问题,都可以使用单调栈来解决。栈可以很好的保存原始位置,最近影射栈顶。题目要求更大,因此更大即解–出栈,更小…...

使用infura创建以太坊网络
创建账号 https://www.infura.io/zh 进入控制台Dashboard,选择CREATE API KEY 创建成功后,进入API KEY查看,使用PostMan测试 返回result即为当前区块。...

TCP/IP协议是什么?
78. TCP/IP协议是什么? TCP/IP协议是一组用于互联网通信的网络协议,它定义了数据在网络中的传输方式和规则。作为前端工程师,了解TCP/IP协议对于理解网络通信原理和调试网络问题非常重要。本篇文章将介绍TCP/IP协议的概念、主要组成部分和工…...

python图像处理实战(三)—图像几何变换
🚀写在前面🚀 🖊个人主页:https://blog.csdn.net/m0_52051577?typeblog 🎁欢迎各位大佬支持点赞收藏,三连必回!! 🔈本人新开系列专栏—python图像处理 ❀愿每一个骤雨初…...

7.4.分块查找
一.分块查找的算法思想: 1.实例: 以上述图片的顺序表为例, 该顺序表的数据元素从整体来看是乱序的,但如果把这些数据元素分成一块一块的小区间, 第一个区间[0,1]索引上的数据元素都是小于等于10的, 第二…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...

MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...