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

MATLAB使用多个扇形颜色变化表示空间一个点的多种数值

MATLAB使用多个扇形颜色变化表示空间一个点的多种数值

excel中表格中数据格式,多行

lonlatdata1data2data3
117380.11100
clear;close all;
figure('Position',[100 100 800 800]);num_points = 14; 
[num,txt,raw] = xlsread('test.xlsx');
x = num(:,1);
y = num(:,2);data1 = num(:,3);  % 维度1 
data2 = num(:,4);   % 维度2 
data3 = num(:,5);  % 维度3
% 归一化数据到 [0,1]
data1_norm = (data1 - min(data1)) / (max(data1) - min(data1));
data2_norm = (data2 - min(data2)) / (max(data2) - min(data2));
data3_norm = (data3 - min(data3)) / (max(data3) - min(data3));cmap_red = hot(256);   
cmap_green = cool(256);
cmap_blue = copper(256); % 扇形的半径和角度
radius = 0.06;  % 扇形半径(根据点间距调整)
theta = linspace(0, 2*pi, 100);  % 完整圆周
sector_angle = 120;  % 每个扇形占120for i = 1:num_points% 当前点的中心坐标center_x = x(i);center_y = y(i);% 绘制三个扇形(每个扇形120度)for sector = 1:3% 计算扇形起始和结束角度start_angle = (sector-1) * sector_angle;end_angle = sector * sector_angle;% 生成扇形边缘坐标(极坐标转笛卡尔坐标)angles = linspace(start_angle, end_angle, 50);angles_rad = deg2rad(angles);x_sector = center_x + radius * [0, cos(angles_rad), 0];y_sector = center_y + radius * [0, sin(angles_rad), 0];% 根据数据维度选择颜色switch sectorcase 1  % 第一个扇形对应data1color_value = cmap_red(ceil(data1_norm(i)*255 + 1), :);case 2  % 第二个扇形对应data2color_value = cmap_green(ceil(data2_norm(i)*255 + 1), :);case 3  % 第三个扇形对应data3color_value = cmap_blue(ceil(data3_norm(i)*255 + 1), :);end% 绘制扇形patch(x_sector, y_sector, color_value, 'EdgeColor', 'none','Markersize',12,'FaceAlpha',1);end
endhold on;
plot(x,y,'k.','MarkerSize',10)
axis equal;
xlim([117, 121]);
ylim([34, 37]);
box on;
set(gca,'FontSize',16);
set(gca,'Layer','top','linewidth',1.2,'xminortick','on','yminortick','on');
mt = 0.4;ax_red = axes('Position', [0.1+mt 0.25 0.2 0.2]);
colormap(ax_red, cmap_red);
caxis(ax_red, [min(data1), max(data1)]);
c = colorbar(ax_red, 'Location', 'east');
set(get(c,'title'),'string','气温','fontsize',10);
ax_red.Visible = 'off';ax_green = axes('Position', [0.2+mt 0.25 0.2 0.2]);
colormap(ax_green, cmap_green);
caxis(ax_green, [min(data2), max(data2)]);
c = colorbar(ax_green, 'Location', 'east');
ax_green.Visible = 'off';
set(get(c,'title'),'string','气压','fontsize',10);ax_blue = axes('Position', [0.3+mt 0.25 0.2 0.2]);
colormap(ax_blue, cmap_blue);
caxis(ax_blue, [min(data3), max(data3)]);
c = colorbar(ax_blue, 'Location', 'east');
ax_blue.Visible = 'off';
set(get(c,'title'),'string','降水','fontsize',10);

demo

http://www.lryc.cn/news/2392201.html

相关文章:

  • mysql:MVCC机制
  • Vue3 + Element Plus 实现树形结构的“单选 + 只选叶子节点 + 默认选中第一个子节点”
  • CAD精简多段线顶点、优化、删除多余、重复顶点——CAD c#二次开发
  • 输电线路的“智慧之眼”:全天候可视化监测如何赋能电网安全运维
  • Spring 核心知识点补充
  • 两阶段法目标检测发展脉络
  • Flannel 支持的后端
  • 小白的进阶之路系列之六----人工智能从初步到精通pytorch数据集与数据加载器
  • SQL进阶之旅 Day 5: 常用函数与表达式
  • NestJS——重构日志、数据库、配置
  • c++数据结构8——二叉树的性质
  • Window Server 2019--08 网络负载均衡与Web Farm
  • arcgis字段计算器中计算矢量面的每个点坐标
  • SpringBoot:统一功能处理、拦截器、适配器模式
  • AI Agent工具全景解析:从Coze到RAGflow,探索智能体自动化未来!
  • GitLab CI流水线权限隔离
  • xcode卡死问题,无论打开什么程序xcode总是在转菊花,重启电脑,卸载重装都不行
  • Onvif协议:IPC客户端开发-IPC相机控制(c语言版)
  • 如何最简单、通俗地理解Pytorch?神经网络中的“梯度”是怎么自动求出来的?PyTorch的动态计算图是如何实现即时执行的?
  • QT+opecv如何更改图片的拍摄路径
  • WebSocket学习总结
  • 秋招Day11 - JVM - 类加载机制
  • Webug4.0靶场通关笔记03- 第3关SQL注入之时间盲注(手注法+脚本法 两种方法)
  • PostgreSQL 数据完整性检查工具对比:amcheck 与 pg_checksums
  • Vert.x学习笔记-什么是Handler
  • 浏览器游戏的次世代革命:WebAssembly 3.0 实战指南
  • Java设计模式之工厂模式与策略模式简单案例学习
  • 【Echarts】象形图
  • git 本地合并怎么撤回
  • 集星云推短视频矩阵系统的定制化与私有化部署方案