MATLAB绘图基础10:MATLAB极坐标相关图形

参考书:《 M A T L A B {\rm MATLAB} MATLAB与学术图表绘制》(关东升)。



10.MATLAB极坐标相关图形
10.1 极坐标图
  • 极坐标图是在极坐标系下绘制数据的图形,极坐标系以中心为原点,使用角度和半径表示数据点的位置;

  • 极坐标图适用于可视化和分析具有循环或周期性特征的数据;

  • 常见使用极坐标图绘制的情况:

    • 振动分析:极坐标图用于显示振动幅度和相位随时间或频率的变化;
    • 气象数据:极坐标图用于可视化风向和风速的数据;
    • 生态学:极坐标图用于显示季节性变化或生物学周期性数据,如:动植物迁徙、季节性繁殖和行为等;
    • 电子工程:极坐标图用于显示复杂电路的频率响应和相位响应;
    • 生物医学:用于分析心脏电生理学数据,如:心电图和心率变异性数据;
    • 天文学:极坐标图用于可视化恒星位置和行星轨迹等天文数据;
    • 地理信息系统:用于显示地理坐标上的数据,如:地图上的风向、磁场方向和地理分布数据;
  • 极坐标图绘制基本示例:

    % ch10_01.m
    clear;
    clc;
    
    % 1.生成数据;
    num1 = 0.2;
    num2 = 0.5;
    
    theta = linspace(0, 30 * pi, 1000);
    radiu = num1 + num2 * theta;
    
    % 2.绘制极坐标图;
    polarplot(theta, radiu, 'b-');
    
    title('极坐标图基本示例');
    set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2.0);
    
    % 3.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch10_01.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    1

  • 极坐标图基本示例 2 2 2

    % ch10_02.m
    clear;
    clc;
    
    % 1.定义数据;
    theta = linspace(0, 2*pi, 100);                         
    radius = 0.5 * sin(4*theta) + 0.5 * cos(4 * theta);    
    
    % 2.绘制极坐标图;
    polarplot(theta, radius, 'r');                              
    title('极坐标图基本示例2'); 
    set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2.0);
    
    % 3.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch10_02.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    2

10.2 雷达图
  • 雷达图用于可视化多维数据的图形类型,通常用于比较多个数据点或实体在多个属性或特征上的表现;

  • 雷达图的特点:将不同属性的数据值映射到一个多边形的顶点上,通过连接这些顶点来形成一个多边形,展现多个数据点之间的差异和相似性;

  • 雷达图绘制基本示例:

    % ch10_03.m
    clear;
    clc;
    
    % 1.定义模拟数据;
    cities = {'城市1', '城市2', '城市3', '城市4', '城市5'};
    indicators = {'经济发展水平', '基础设施', '教育资源', '医疗设施', '交通便利性', '环境质量'};
    
    score = [
        [9, 7, 8, 7, 9, 6];
        [8, 7, 8, 6, 9, 8];
        [6, 7, 7, 8, 6, 9];
        [5, 8, 9, 7, 8, 6];
        [6, 7, 8, 9, 7, 9]];
    
    figure;
    
    % 2.绘制雷达图;
    for i = 1:size(score, 1)
        polarplot(deg2rad(0:360/length(indicators):360), [score(i, :) score(i, 1)], '-o', 'MarkerSize', 8, 'DisplayName', cities{i});
        hold on;
    end
    
    % 3.设置雷达图的雷达半径、角度标签、指标标签;
    rlim([0, 10]);
    thetaticks(0:360/length(indicators):360);
    thetaticklabels(indicators);
    set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',2.0);
    
    % 4.标题、图例;
    title('不同城市不同指标评分雷达图', 'Interpreter', 'none');
    legend('Location', 'best');
    grid on;
    
    % 5.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch10_03.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    3

10.3 玫瑰图
  • 玫瑰图:亦称为极坐标直方图,一种用于可视化数据的方向分布的图形表示方法,适用于显示数据在不同方向上的分布情况;

  • 玫瑰图由一组放射线或扇区组成,每个扇区表示数据在特定方向上的频率或密度,每个扇区的角度对应方向,扇区的半径或长度表示该方向上的数据频率或密度;

  • 玫瑰图应用领域:气象学中用于显示风向分布、地震学中用于显示地震震源方向分布、生物学中用于显示动物迁徙方向分布等;

  • 玫瑰图提供一种直观的方式理解数据在不同方向上的分布特征;

  • 玫瑰图绘制基本示例:

    % ch10_04.m
    clear;
    clc;
    
    % 1.创建示例模拟数据;
    data = 360 * rand(5000, 1);
    
    % 2.绘制玫瑰图;
    h = rose(data, 50);
    
    % 3.标题;
    title('玫瑰图基本示例');
    
    % 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch10_04.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    4

10.4 极坐标柱状图
  • 极坐标柱状图是一种用于可视化数据分布的图表类型,其使用极坐标系来表示数据的分布情况;

  • 极坐标柱状图常用于显示数据的方向性分布,适合处理周期性数据或数据的方向性特征;

  • 极坐标柱状图特点和组成:

    • 极坐标系:极坐标柱状图使用极坐标系,数据点的位置由半径和角度确定,半径表示数据的频率或密度,角度表示数据的方向;
    • 柱子:极坐标柱状图中的数据表示为一系列扇形区域,常用柱子或扇形表示,每个柱子代表一组数据,并覆盖一定的角度范围;
    • 角度分布:极坐标柱状图显示数据在不同角度上的分布情况,每个柱子的高度表示数据在相应角度范围内的频率或计数;
    • 径向刻度标签:极坐标柱状图常具有径向的刻度标签,用于表示数据的频率或计数;
    • 角度刻度标签:角度刻度标签用于表示每个柱子所代表的角度范围;
  • 极坐标柱状图常用于分析和可视化具有方向性分布的数据,如:风向、地震震级、太阳黑子的方向分布等;

  • 极坐标柱状图绘制基本示例:

    % ch10_05.m
    clear;
    clc;
    
    % 1.创建1000个随机数据(0-360°)基本示例模拟数据;
    data = 360 * rand(1000, 1);
    
    % 2.绘制极坐标柱状图,deg2rad:角度数据转弧度数据;创建36个柱子;
    polarhistogram(deg2rad(data), 36, 'FaceColor', 'b', 'EdgeColor', 'r');
    
    % 3.标题;
    title('极坐标柱状图基本示例');
    
    % 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch10_05.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    5

10.5 极坐标散点图
  • 极坐标散点图中,数据点的位置由两个变量确定:角度(极坐标的角度)和极径(距离原点的距离);

  • 极坐标散点图常用于以下情况:

    • 方向分布:想了解数据点在不同方向上的分布,如物体的运动方向或风向;
    • 集中程度:极坐标散点图可以帮助观察数据点是否集中在一个特定方向或距离上;
    • 周期性模式:当想检测数据中是否存在周期模式时,如一年中某一特定时间的事件分布;
    • 雷达图:极坐标散点图与雷达图结合使用,以显示多个变量的数据分布;
  • 极坐标散点图绘制基本示例:

    % ch10_06.m
    clear;
    clc;
    
    % 1.生成随机数据:角度和极径;
    theta = linspace(0, 2 * pi, 500);
    rho = rand(1, 500);
    
    figure;
    
    % 2.绘制极坐标散点图;
    polarplot(theta, rho, 'ro');
    
    % 3.标题;
    title('极坐标散点图基本示例');
    
    % 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch10_06.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    6

10.6 极坐标轨迹图
  • 极坐标轨迹图适合展示数据点在极坐标系统中的路径或轨迹,适合显示周期性、径向或循环性的数据;

  • 极坐标轨迹图中,数据点的位置由两个参数确定:极角(从某个起始方向测量的角度)和极径(从极点或中心到数据点的距离);

  • 极坐标轨迹图的几种应用情况:

    • 天文学:表示行星、卫星或彗星的轨迹,以可视化它们的运动;
    • 地理学:显示气旋、风暴或其他气象和地理现象的路径;
    • 工程学:绘制机械部件的旋转、振动或运动轨迹,以进行性能分析;
    • 物理学:可视化粒子、电子轨迹或其他物理现象的路径;
  • 极坐标轨迹图绘制基本示例:

    % ch10_07.m
    clear;
    clc;
    
    % 1.生成随机数据:极角和极径;
    theta = linspace(0, 2 * pi, 1000);
    rho1 = cos(10 * theta);
    rho2 = sin(10 * theta);
    
    figure;
    
    % 2.绘制极坐标轨迹图;
    polarplot(theta, rho1, 'b-');
    hold on;
    polarplot(theta, rho2, 'r--');
    
    % 3.标题;
    title('极坐标轨迹图基本示例');
    
    % 4.生成高质量图像;
    dpi = 600;
    imagePath = 'D:\自动控制理论\MATLAB绘图\Images\ch10_07.png';
    print(imagePath, '-dpng', ['-r', num2str(dpi)]);
    

    7

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA加载通义灵码插件及使用指南

安装通义灵码插件 登录通义灵码IDE插件 下载登录参考教程 https://help.aliyun.com/zh/lingma/user-guide/download-the-installation-guide 本地工程和企业知识库准备 请下载本地工程和知识库压缩包,并在本地解压缩,其中包含demoProject和知识库文件…

【VScode】VScode内的ChatGPT插件——CodeMoss全解析与实用教程

在当今快速发展的编程世界中,开发者们面临着越来越多的挑战。如何提高编程效率,如何快速获取解决方案,成为了每位开发者心中的疑问。今天,我们将深入探讨一款颠覆传统编程体验的插件——CodeMoss,它将ChatGPT的强大功能…

Centos 网络接口打vlan标签

Centos 网络接口打vlan标签 本次使用给bond打vlan标签,其实其他普通接口也一样 Centos创建bond前需要关闭NetworkManager [root192 network-scripts]# systemctl disable NetworkManager --now Removed symlink /etc/systemd/system/multi-user.target.wants/Netwo…

Java语言简单了解

一.java语言的三个版本 1.javaSE:java语言的(标准版),用户桌面应用的开发,是其他两个版本的基础 桌面应用:用户只要打开程序,程序的界面会让用户在最短的时间内找到他们需要的功能。 2.javaMe:java语言的…

华宇TAS应用中间件入围鲲鹏应用创新大赛2024全国总决赛

近日,鲲鹏应用创新大赛2024全国总决赛入围名单出炉。华宇TAS应用中间件经过区域赛、半决赛一路披荆斩棘,在众多优秀的解决方案中脱颖而出,成功入围全国总决赛。 这也表明华宇TAS应用中间件在方案创新性、技术领先性、商业前景、社会价值等方…

科研绘图系列:R语言多个组合堆积图(stacked plot)

文章目录 介绍加载R包数据数据预处理画图1画图2画图3画图4画图5画图6画图7画图8画图9组合图形系统信息介绍 堆积图(Stacked Chart),也称为堆叠图,是一种常用的数据可视化图表,主要用于展示不同类别的数据量在总体中的分布情况。堆积图可以是柱状图、条形图或面积图的形式…

net core Autofac 替换默认的服务容器 DI,微软自动的容器 不支持命名选项的

微软默认的容器,不支持命名选项,同一接口,多个实现。 就不支持了。 配置core 支持Autofac 容器 using Autofac; using Autofac.Extensions.DependencyInjection;namespace WebApplication13 {public interface IMyService{string GetData()…

1、Qt6 Quick 简介

一、Qt6 Quick 简介 1、Qt Quick简介 Qt Quick 是 Qt 6 中使用的用户界面技术的总称。它是在 Qt 4 中引入的,现在在 Qt 6 中进行了扩展。Qt Quick 本身是几种技术的集合: QML——用户界面标记语言JavaScript - 动态脚本语言Qt C - 高度可移植的增强型…

【HarmonyOS NEXT】在 HarmonyOS NEXT 中实现优雅的加载动画

【HarmonyOS NEXT】在 HarmonyOS NEXT 中实现优雅的加载动画 在移动应用开发中,加载动画是提升用户体验的重要工具。在应用程序处理数据或加载页面时,为用户提供视觉反馈尤为关键。在这篇博客中,我们将探讨如何在 HarmonyOS NEXT 中使用 Sta…

2024年10月30日(双指针算法)

一.和为s的两个数字: 1.题目描述: 这个题目就是找出两个数,这两个数的和是目标值,找到其中一对就可以返回了。 2.算法原理: 方法一: 暴力枚举的策略: 就是两层for循环,固定一个数&…

PyQt5实战——UTF-8编码器UI页面设计以及按钮连接(五)

个人博客:苏三有春的博客 系类往期文章: PyQt5实战——多脚本集合包,前言与环境配置(一) PyQt5实战——多脚本集合包,UI以及工程布局(二) PyQt5实战——多脚本集合包,程序…

【网络面试篇】HTTP(2)(笔记)——http、https、http1.1、http2.0

目录 一、相关面试题 1. HTTP 与 HTTPS 有哪些区别? 2. HTTPS 的工作原理?(https 是怎么建立连接的) (1)ClientHello (2)SeverHello (3)客户端回应 &a…

【VScode】中文版ChatGPT编程工具-CodeMoss!教程+示例+快捷键

文章目录 1. 多模型选择2. 编辑快捷键3. 历史记录收藏 CodeMoss使用教程1. 安装CodeMoss插件2. 配置AI模型3. 使用快捷键4. 进行代码优化与解释5. 收藏历史记录 总结与展望 在当今快速发展的编程世界中,开发者们面临着越来越多的挑战。如何提高编程效率,…

JqGird 动态生成列使用

使用场景: 在工作用需要自定义动态生成列,通过选择下拉框,加载列,通过查询加载列对应的数据信息 当选择文件源任务显示三列 当选择数据源任务显示两列 处理方式: 1. 首先在刚进入界面时初始化控件 $("#pageGri…

STM32Fxx读写eeprom(AT24C16)

一.I2C 协议简介 I2C 通讯协议 (Inter - Integrated Circuit) 是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个…

鸿蒙系统的优势 开发 环境搭建 开发小示例

HarmonyOS是面向多智能终端、全场景的分布式操作系统,为消费者提供跨终端的无缝体验.华为开发者联盟从HarmonyOS应用设计、开发、测试、推广变现等环节全方位助力开发者。 开发者可以通过以下步骤学习鸿蒙系统的开发: 基础理论学习: 了解鸿蒙系统概述&a…

「C/C++」C/C++的区别

✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…

Windows部署rabbitmq

本次安装环境: 系统:Windows 11 软件建议版本: erlang OPT 26.0.2rabbitmq 3.12.4 一、下载 1.1 下载erlang 官网下载地址: 1.2 下载rabbitmq 官网下载地址: 建议使用解压版,安装版可能会在安装软件…

el-table 滚动条重置 手动控制滚动条

最近在使用 el-table 的时候,出现一个问题: 表头过长的时候,会有左右滑动的操作,当我们把表格拉到最右侧,这个时候重新请求数据的话,表格位置还是在最右侧,不会恢复原位。 那我们想恢复原位&a…

推荐FileLink数据跨网摆渡系统 — 安全、高效的数据传输解决方案

在数字化转型的浪潮中,企业对于数据传输的需求日益增加,特别是在不同网络环境之间的文件共享和传输。为了满足这一需求,FileLink数据跨网摆渡系统应运而生,为企业提供了一种安全、高效的数据传输解决方案。 安全第一,保…