MATLAB 绘制点的地理空间分布,并用点的颜色或大小代表数值

本文展示了如何使用Matlab绘制带有地理信息的点云,通过纬度和经度坐标展示数值,并利用颜色和大小表示数据趋势。通过计算点的值在特定颜色映射范围内的位置,实现了动态颜色编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

%% 修改日期 2021/12/8

clc
clear
close all

%% 测试数据,第一列代表纬度,第二列经度,第三列则是点的值
txt = [46.75296619	-69.1022775	0.312909752
        46.80735808	-69.06131914	0.391153485
        46.68438136	-68.40644856	-0.524917185
        47.68233472	-67.83951645	-0.362872481
        47.73347821	-67.48293127	0.379074633
        46.56927204	-66.63274775	0.627253115
        48.82562532	-89.90962194	-0.810236374
        49.0812938	-88.90238965	0.02499993
        49.35432864	-86.12624065	0.065611847
        48.68766235	-85.30347215	-0.903552517
        63.50718307	-106.5093842	0.041277163
        54.97197342	-94.08466339	0.034904364
        63.40093613	-104.4501114	0.078380927
        60.09253311	-99.99758911	0.482118399
        52.10863113	-88.39727783	0.112472057
        61.94615173	-100.0819702	0.024138847
        60.3741684	-102.3393326	0.357612896
        54.6315918	-111.2618713	-0.000142065
        55.32191086	-108.146904	0.070289746
        54.93228531	-109.2432938	0.751994625
        57.58321381	-96.2898941	0.04316574
        56.83683014	-104.2588959	-0.00735079
        54.33012772	-109.4531403	0.143774554
        54.71362686	-93.17708588	0.085161708
        52.77823257	-92.98579407	0.218541756
        51.54619598	-92.03131104	0.134764045
        52.16275024	-90.94496155	-0.761091509
        52.20027542	-89.87015533	0.25543201
        53.00246048	-89.05403137	0.533926491
        53.35476303	-89.2333374	0.007532292];

%% 绘制点的地理空间分布,并用颜色和大小代表数值
%
figure(1)
worldmap([35 75],[-150 -50])               %加载指定区域的世界地图
geoshow('landareas.shp', 'FaceColor', [0.85 0.85 0.85], 'EdgeColor', [0.8 0.8 0.8]) %加载陆地

hco = colorbar;                                   %显示colorbar
set(get(hco,'label'),'string','Trend of Q (mm/year)','FontSize',15);   %加载colorbar标签
load c_MPL_RdBu                               %加载指定colorbar
colormap(mycmap)
caxis([-1 1])                                        %colorbar上下限
    
for i = 1:length(txt)
    lat = txt(i,1);                                   %点的纬度
    lon = txt(i,2);                                  %点的经度
    z =  txt(i,3);                                    %点的数值
    
    %% 关键一步,给点赋颜色,geoshow无法像scatter函数一样自动根据点据数据赋颜色
    % 计算点的颜色在colorbar中的位置,我采用的colorbar是128*3的rgb
    color_loc = round((z+1)/2*128);      
    color_loc(color_loc>128) = 128;      %说明点的值超过了color的上限(此处是1),赋以最蓝的颜色
    color_loc(color_loc<1) = 1;             %说明点的值超过了color的上限(此处是-1),赋以最洪的颜色

    geoshow(lat,lon,'displaytype','point','MarkerFaceColor',mycmap(color_loc,:),'MarkerEdgeColor',[0.5 0.5 0.5],'markersize',10,'Marker','o')
end

h = figure(1);
set(h,'units','normalized','position',[0.1 0.1 0.4 0.35]);  

输出图如下:
在这里插入图片描述

在这里插入图片描述

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值