1.地理气泡图概述
使用地图作为背景时,地理气泡图会在地图上由经度和纬度指定的位置将您的数据绘制为填充了颜色的圆(称为气泡)。您可以使用气泡的大小和颜色来指示在这些位置的数据值。
假设有描述世界各地的海啸事件的数据。将数据绘制在地理气泡图中,在称为底图的地图上用气泡标记每一次事件。您可以使用气泡大小指示海浪高度,使用气泡颜色指示原因。以地图为背景,可以立即看到海啸事件及其严重性。在地图上绘制数据是可视化数据的有效方式。
地理气泡图包括下列组成部分(如以下的图窗所示):
1.1 地理气泡图组成部分
1.2 地理气泡图图例
当您使用 SizeData 创建地理气泡图时,图中会包含一个气泡大小图例,用来说明如何用气泡的大小来表示数据值的大小。图例包括四个从小到大的不同气泡大小采样。您可以使用
BubbleWidthRange 属性指定最小和最大气泡的宽度。图例用关联的数值在图例中标记最小和最大的气泡。图例从
SizeLimits 属性中获取这些值。如果您直接指定
SizeData
,则图例无标题。您可以使用 SizeLegendTitle 属性指定图例的标题。如果要为大小数据指定表变量,则图例将使用变量的名称作为大小图例的标题。图例包括四个从小到大的不同气泡大小采样。可以使用
BubbleWidthRange 属性指定最小和最大气泡的宽度。图例用关联的数值在图例中标记最小和最大的气泡。
同样,如果您使用 ColorData 创建地理气泡图,则图中会包含一个颜色图例,用来显示如何用不同的气泡颜色表示分类数据。图例包括各种颜色,每种颜色用与之相关联的类别进行标记。如果您直接指定ColorData
,则图例无标题。您可以使用
ColorLegendTitle 属性指定图例的标题。如果要为颜色数据指定表变量,则图例将使用变量的名称作为颜色图例的标题。
下图显示了地理气泡图的大小和颜色图例。
2.在地理密度图上查看飓风轨迹数据
此示例说明如何在地理密度图上查看飓风轨迹数据。该数据记录 2007-2017 之间 11 年的飓风观测结果。
加载飓风轨迹数据。该数据由日本气象厅制作,它以 6 小时为间隔记录了飓风的位置、气压(以百帕为单位)和风速(以节为单位)。表中的每一行代表特定飓风的一次观察记录,由名称和 ID 号进行标识。
load cycloneTracks
要理解这些数据,请使用 geoplot 函数绘制三个飓风的轨迹。获取三个飓风的数据记录,由 ID 号和名称进行标识。每一条观察记录都提供了纬度和经度。通过启用
hold,在一个地图上绘制所有三个飓风的轨迹。
figure
latMalakas = cycloneTracks.Latitude(cycloneTracks.ID == 1012);
lonMalakas = cycloneTracks.Longitude(cycloneTracks.ID == 1012);
geoplot(latMalakas,lonMalakas,'.-')
geolimits([0 60],[100 180])
hold on
latMegi = cycloneTracks.Latitude(cycloneTracks.ID == 1013);
lonMegi = cycloneTracks.Longitude(cycloneTracks.ID == 1013);
geoplot(latMegi,lonMegi,'.-')
latChaba = cycloneTracks.Latitude(cycloneTracks.ID == 1014);
lonChaba = cycloneTracks.Longitude(cycloneTracks.ID == 1014);
geoplot(latChaba,lonChaba,'.-')
使用 geodensityplot 查看在这 11 年期间跟踪的所有飓风的密度。此图查看的不是特定飓风的轨迹,而是所有飓风在每个点的所有记录。
geodensityplot 使用各个位置的占比来计算累积的概率分布曲面。曲面透明度随密度而变化。
figure
latAll = cycloneTracks.Latitude;
lonAll = cycloneTracks.Longitude;
geodensityplot(latAll,lonAll)
默认情况下,geodensityplot 使用一种颜色表示所有密度值,使用透明度表示密度变化。也可以在geodensityplot
中使用多种颜色来表示不同密度的区域。要实现此目的,请设置
'FaceColor'
属性。
geodensityplot(latAll,lonAll,'FaceColor','interp')
参考资料:此飓风轨迹数据来自日本气象厅制作的 RSMC 最佳轨迹数据 (
Japan Meteorological Agency | RSMC Tokyo - Typhoon Center (jma.go.jp)
),由 MathWorks 修改后用于此示例。
3. 查看蜂窝塔位置的密度
此示例说明如何使用地理密度图来查看加利福尼亚地区蜂窝塔位置的密度。
3.1 加载蜂窝塔位置数据
将一个包含蜂窝塔位置数据的表加载到工作区中。下表中包含的字段通过纬度和经度来标识蜂窝塔的位置,并标识塔的类型。
load cellularTowers
3.2 以地理散点图的方式查看数据
使用 geoscatter 函数绘制蜂窝塔数据。在下图中,旧金山附近有一些明显的区域因为塔的数量太密集而不能用散点图表示。
lat = cellularTowers.Latitude;
lon = cellularTowers.Longitude;
geoscatter(lat,lon,'.')
text(gca,37.75,-122.75,'San Francisco','HorizontalAlignment','right')
3.3 以地理密度图的方式查看数据
旧金山地区的蜂窝塔密集区域可以使用 geodensityplot
来显示。
geodensityplot(lat,lon)
text(gca,37.75,-122.75,'San Francisco','HorizontalAlignment','right')
3.4 创建指定半径的密度图
创建地理密度图时,默认情况下,密度图使用纬度和经度数据自动选择半径值。可以使用 Radius 属性手动选择以米为单位的半径。
radiusInMeters = 50e3; % 50 km
geodensityplot(lat,lon,'Radius',radiusInMeters)
3.5 使用坐标区属性调整透明度
设置为 'interp'
时,密度图的
FaceAlpha
和
FaceColor
属性分别使用底层地理坐标区的
Alphamap
和
Colormap
属性。更改
Alphamap
将更改密度值与颜色强度之间的映射。
geodensityplot(lat,lon)
alphamap(normalize((1:64).^0.5,'range'))
地理坐标区上的 AlphaScale 属性也可用于更改透明度。如果要显示所有有密度的位置,而不是只突出显示最密集的区域,此属性尤其有用。
figure
dp = geodensityplot(lat,lon)
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';
3.6 使用 DensityPlot 对象属性指定颜色
添加颜色。
dp.FaceColor = 'interp';
colormap hot