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

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;

p19

polarhistogram函数:绘制极坐标直方图

% 创建数据
theta = 0:0.1:2*pi;
data = 1/2*theta;% 绘制极坐标直方图
polarhistogram(theta, data, 'LineWidth', 1.5);% 添加标题
title('Polar Histogram');

p20

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;

p21

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;

p22

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');

p23

scatterhist函数:绘制散点图和直方图组合图

% 创建数据
x = randn(1000, 1);
y = randn(1000, 1);% 绘制散点图和直方图组合图
scatterhist(x, y, 'Marker', 'o', 'MarkerSize', 6);% 添加标题和标签
title('Scatterhist Plot');
xlabel('X');
ylabel('Y');

p24

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');

p25

compass函数:绘制极坐标箭头图

% 创建数据
theta = 0:pi/4:2*pi;
r = ones(size(theta));% 绘制极坐标箭头图
compass(r, theta);% 设置箭头长度
h = findobj(gca, 'Type', 'line');
set(h, 'MarkerSize', 8);

p26

wordcloud函数:绘制词云图

% 创建数据
words = {'apple', 'banana', 'orange', 'grape', 'watermelon', 'pineapple'};
counts = [10, 5, 8, 12, 6, 9];% 绘制词云图
wordcloud(words, counts);% 添加标题
title('Word Cloud');

p27

parallelplot函数:绘制平行坐标图

% 创建数据
data = randn(100, 5);% 绘制平行坐标图
parallelplot(data, 'LineWidth', 1.5);% 添加标题和标签
title('Parallel Coordinate Plot');
xlabel('Variables');
ylabel('Values');

p28

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');

p29

geoplot函数:绘制地理坐标图

% 创建地理数据
lat = [40.7128, 34.0522, 51.5074];
lon = [-74.0060, -118.2437, -0.1278];% 绘制地理坐标图
geoplot(lat, lon, 'o', 'MarkerSize', 10);% 添加标题
title('Geographic Plot');

p30

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');

p32

dendrogram函数:绘制树状图

% 创建数据
Z = linkage(rand(10, 3), 'ward');% 绘制树状图
dendrogram(Z);% 添加标题
title('Dendrogram');

p33

spy函数:绘制稀疏矩阵图

% 创建稀疏矩阵
A = sparse(eye(5));% 绘制稀疏矩阵图
spy(A);% 添加标题
title('Sparse Matrix Plot');

p34

这些是更多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) 设置浏览器窗口的大小 (了解) 场景&#xff1…...

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图像处理 ❀愿每一个骤雨初…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...