参考书:《 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)]);
-
极坐标图基本示例 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)]);
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)]);
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)]);
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)]);
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)]);
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)]);