Matlab绘图系列教程-Matlab 34 种绘图函数示例(下)

news2024/9/28 7:27:02

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;
end

disp('动画保存成功!');

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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绘图的各个方面,并介绍一些高级技巧和实用技巧。敬请期待!

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

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

相关文章

8、添加PolylineCollection线

本节演示添加线要素,使用第四节单击事件的例子,修改点击事件创建线要素。 1、重新修改地图默认位置 double r glm::radians(-45.0); Cesium::HeadingPitchRoll *orientation new Cesium::HeadingPitchRoll(0.0, r, 0.0); glm::dvec3 initialPosition…

map和set的封装

目录 封装逻辑 用红黑树封装set和map 红黑树的定义改变 迭代器 红黑树的迭代器 set的迭代器 map重载[]操作的实现 比较关键——得到 key的类型K 封装逻辑 用红黑树封装set和map map和set用红黑树来实现的;红黑树的前三个模板参数分别表示:得到key的…

C语言---程序环境和预处理(底层原理万字详解)

文章目录 前言🌟一、程序的翻译环境和执行环境🌟二、详解编译链接🌏2.1命令🌏2.2 板书详解🌏2.3运行环境 🌟三、预处理详解🌏3.1预定义符号🌏3.2 #define💫3.2.1 #define…

第三章 SSD存储介质:闪存

3.1 闪存物理结构 闪存芯片从小到大依此是由:cell(单元)、page(页)、block(块)、plane(平面)、die(核心)、NAND flash(闪存芯片&#…

【动手学习深度学习--逐行代码解析合集】10Dropout暂退法

【动手学习深度学习】逐行代码解析合集 10Dropout暂退法 视频链接:动手学习深度学习–Dropout暂退法 课程主页:https://courses.d2l.ai/zh-v2/ 教材:https://zh-v2.d2l.ai/ 1、暂退法原理 2、从零开始实现暂退法 import torch from torch i…

微服务网关技术选型:Zuul2、Gateway、OpenResty、Kong

1、简介 当使用单体应用程序架构时,客户端(Web 或移动端)通过向后端应用程序发起一次 REST 调用来获取数据。负载均衡器将请求路由给 N 个相同的应用程序实例中的一个。然后应用程序会查询各种数据库表,并将响应返回给客户端。微…

missing-semester————1

文章目录 shell概述echoshell如何知道去哪寻找date或echo呢?$PATHlsman流根用户 shell概述 root1test:~$ $表示身份不是root用户 ~表示当前所在位置是"home" root1test:~$ date Sat Jul 8 02:57:44 UTC 2023输入命令,会被shell解析 上述执行…

静态路由配置——Cisco Packet Tracer

这里放一个用Packet Tracer 8.0实现的配置好的静态路由文件,配置如下 下载链接如下: https://wwix.lanzoue.com/ifp5T11ksnla

内嵌tomcat报错

严重: Unable to process Jar entry [module-info.class] from Jar [jar:file:/D:/javaTools/apache-maven-bin/apache-maven-3.6.1/maven-repo/com/fasterxml/jackson/core/jackson-databind/2.10.5/jackson-databind-2.10.5.jar!/] for annotations org.apache.tomcat.util.b…

NI采集卡USB-6361多通道模拟输入采集报错解决方案

文章目录 前言一、现有例程1、前面板2、程序框图 二、采集测试1、单通道采集2、多通道采集①、错误的做法②、正确的做法1)前面板2)程序框图3)运行测试 总结 前言 折腾一块 USB-6361 采集卡很久了,之前都是单通道采集模拟信号&am…

云原生(第六篇)k8s-kubeadmin部署

master(2C/4G,cpu核心数要求大于2) 192.168.169.10 docker、kubeadm、kubelet、kubectl、flannel node01(2C/2G) 192.168.169.30 docker、kubeadm、kubelet、kubect…

汇总:FlatLaf-intellij-themes皮肤效果一览

关于主题包&#xff1a; FlatLaf 是一个跨平台的 Java Swing 外观库&#xff0c;提供现代化的平面化用户界面。 导包 <dependency><groupId>com.formdev</groupId><artifactId>flatlaf</artifactId><version>3.1.1</version><sco…

机器学习28:《推荐系统-I》概述

在互联网领域&#xff0c;推荐系统&#xff08;Recommendation Systems&#xff09;的应用非常广泛。在音视频方面&#xff0c;如抖音、快手、哔哩等&#xff1b;在电商平台方面&#xff0c;如京东、淘宝、拼多多等。推荐有助于帮助用户快速发现潜在感兴趣的内容&#xff08;音…

RS485或RS232转ETHERCAT连接安川ethercat总线伺服

最近&#xff0c;生产管理设备中经常会遇到两种协议不相同的情况&#xff0c;这严重阻碍了设备之间的通讯&#xff0c;串口设备的数据不能直接传输给ETHERCAT。这可怎么办呢&#xff1f; 别担心&#xff0c;远创智控YC-ECT-RS485/232来了&#xff01;这是一款自主研发的ETHER…

使用vue ui创建vue项目失败原因

每个人的失败原因都不相同&#xff0c;因为下载NodeJS文件时&#xff0c;默认下载到c盘中&#xff0c;我改变盘符到了D盘&#xff0c;因此要删除c盘中隐藏的文件&#xff0c;注意是c盘中的.npmrc文件。具体位置如下&#xff1a; 点击查看显示隐藏文件才能看到该文件 最后创建项…

磁性材料在使用时需要注意什么

为了不引起人身损伤及磁体性能不良&#xff0c;请遵循以下注意事项&#xff1a; 1、 磁体在使用过程中应确保工作场所干净&#xff0c;否则容易吸附铁屑等磁性小颗粒影响使用。 2、 磁体在充磁时&#xff0c;磁体必须固定&#xff0c;且充磁场必须大于磁体材料矫顽力的2.5倍&…

CEC2023动态多目标优化算法:基于自适应启动策略的混合交叉动态约束多目标优化算法(MC-DCMOEA)求解CEC2023(提供MATLAB代码)

一、动态多目标优化问题 1.1问题定义 1.2 动态支配关系定义 二、 基于自适应启动策略的混合交叉动态多目标优化算法 基于自适应启动策略的混合交叉动态多目标优化算法&#xff08;Mixture Crossover Dynamic Constrained Multi-objective Evolutionary Algorithm Based on Se…

【ElasticSearch】JavaRestClient实现文档查询、排序、分页、高亮

文章目录 1、入门案例2、全文检索3、精确查询4、复合查询-boolean query5、排序和分页6、高亮 1、入门案例 先初始化JavaRestClient对象&#xff1a; SpringBootTest public class HotelSearchTest {private RestHighLevelClient client;Testvoid testInit() {System.out.pri…

uniapp如何给空包进行签名操作

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 首先安装sdk https://www.oracle.com/java/technologies/downloads/ 正常下一步即可~安装完毕后&#xff0c;进入在sdk根目录执行cmd C:\Program Files\Java\jdk-18.0.1.1\bin生成keystore 例&#xf…

数据结构--线索二叉树找前驱后继

数据结构–线索二叉树找前驱后继 中序线索二叉树找中序后继 在中序线索二叉树中找到指定结点*p的 中序后继 \color{red}中序后继 中序后继next ①若p->rtag 1&#xff0c;则next p->rchild ②若p->rtag 0 中序遍历――左根右 左根(左根右) 左根((左根右)根右) next …