此示例说明如何使用地理密度图查看加利福尼亚州蜂窝塔放置的密度。
加载蜂窝塔放置数据
将蜂窝塔放置数据表加载到工作空间中,并查看前几行。该表包括一些字段,这些字段通过纬度和经度来标识蜂窝塔的位置,并标识塔的类型。
load cellularTowers
head(cellularTowers)
ans=8×10 table
ID Latitude Longitude City County State NEPA SUPSTRUC ALLSTRUC STRUCTYPE
____ ________ _________ _________________ ___________ _____ ____ ________ ________ _________
2166 37.119 -121.83 "MORGAN HILL" SANTA CLARA CA N 46.9 50.6 MAST
2167 37.346 -121.63 "SAN JOSE" SANTA CLARA CA N 2.4 2.4 PIPE
2168 37.158 -121.98 "REDWOOD ESTATES" SANTA CLARA CA N 24.7 25.3 TOWER
2169 37.366 -122.14 "LOS ALTOS HILLS" SANTA CLARA CA N 18.3 19.8 POLE
2170 37.402 -122.18 "STANFORD" SANTA CLARA CA N 6.4 6.4 POLE
2171 37.258 -122.03 "SARATOGA" SANTA CLARA CA N 10.1 11.9 B
2172 37.434 -121.89 "MILPITAS" SANTA CLARA CA N 17.1 17.7 POLE
2173 37.446 -121.89 "MILPITAS" SANTA CLARA CA N 19.5 19.5 B
以地理散点图查看数据
使用geoscatter
函数绘制蜂窝塔数据。在该图中,旧金山周围有清晰的区域,那里的塔楼数量太稠密而无法使用散点图来表示。
geoscatter(cellularTowers.Latitude, cellularTowers.Longitude, '.')
text(gca,37.75,-122.75,'San Francisco','HorizontalAlignment','right')
以地理密度图查看数据
可以使用geodensityplot
来显示旧金山地区蜂窝塔的密集区域。
geodensityplot(cellularTowers.Latitude, cellularTowers.Longitude)
text(gca,37.75,-122.75,'San Francisco','HorizontalAlignment','right')
创建指定半径的密度图
创建地理密度图时,默认情况下,密度图会使用纬度和经度数据自动选择半径值。使用该Radius
属性可以手动选择以米为单位的半径。
radiusInMeters = 50e3; % 50 km
geodensityplot(cellularTowers.Latitude, cellularTowers.Longitude,'Radius',radiusInMeters)
使用轴属性调整透明度
设置为时'interp'
,密度图的FaceAlpha
和FaceColor
属性分别使用基础地理轴的Alphamap
和Colormap
属性。更改Alphamap
会改变浓度值到颜色强度的映射。
geodensityplot(cellularTowers.Latitude, cellularTowers.Longitude)
alphamap(normalize((1:64).^0.5,'range'))
地理轴上的AlphaScale
属性也可以用于更改透明度。当试图显示任何密度的区域而不是突出显示最密集的区域时,此属性特别有用。
figure
dp = geodensityplot(cellularTowers.Latitude, cellularTowers.Longitude)
dp =
DensityPlot with properties:
FaceColor: [0 0.4470 0.7410]
FaceAlpha: 'interp'
LatitudeData: [1×1193 double]
LongitudeData: [1×1193 double]
WeightData: [1×0 double]
Radius: 1.8291e+04
Show all properties
gx = gca
gx =
GeographicAxes with properties:
Basemap: 'streets-light'
Position: [0.1300 0.1100 0.7750 0.8150]
Units: 'normalized'
Show all properties
gx.AlphaScale = 'log';
使用DensityPlot对象属性指定颜色
添加颜色。
dp.FaceColor = 'interp';
colormap hot
注:本文根据MATLAB官网内容修改而成。
我推荐给你以下的视频教程,特点是没有PPT,不掺水,直接编程环境下的实操课程: 用360分钟了解MATLAB编程《MATLAB编程360》视频课程:
MATLAB编程360 - 网易云课堂study.163.comstudy.163.com