主要内容

geodensityplot

在地理坐标中的密度图

说明

geodensityplot(lat,lon) 在地理坐标中创建密度图。使用 lat 指定以度为单位的纬度坐标,使用 lon 指定以度为单位的经度坐标。如果当前坐标区不是地理坐标区,或如果没有当前坐标区,则该函数会在一个新的地理坐标区中创建密度图。

示例

geodensityplot(lat,lon,weights) 指定数据点的大小。

示例

geodensityplot(gx,___)gx 指定的地理坐标区中绘图。将坐标区指定为第一个参量,后跟上述语法中的任何输入参量组合。

geodensityplot(___,Name=Value) 使用一个或多个名称-值参量指定密度图的属性。有关属性列表,请参阅 DensityPlot Properties

示例

dp = geodensityplot(___) 返回 DensityPlot 对象。在创建绘图后,使用 dp 设置属性。有关属性的完整列表,请参阅 DensityPlot Properties

示例

全部折叠

加载一个包含加利福尼亚州手机信号发射塔数据的表。表的每行表示一个手机信号发射塔。表变量包括关于手机信号发射塔的数据,例如纬度和经度坐标。从表中提取纬度和经度坐标。

load cellularTowers.mat
lat = cellularTowers.Latitude;
lon = cellularTowers.Longitude;

根据坐标创建一个密度图。默认情况下,geodensityplot 函数通过改变绘图的透明度来可视化密度。区域的密度越高,越不透明;区域的密度越低,越透明。

figure
geodensityplot(lat,lon)

加载一个包含飓风轨迹数据的表。该表包括 200 多个飓风的位置和风速,每隔 6 小时测量一次。从表中提取纬度坐标、经度坐标和风速。

load cycloneTracks.mat
lat = cycloneTracks.Latitude;
lon = cycloneTracks.Longitude;
windspeed = cycloneTracks.WindSpeed;

根据坐标创建一个密度图,并使用风速对这些点进行加权。生成的密度图突出显示飓风风速最高的区域。

geodensityplot(lat,lon,windspeed)

此示例使用来自日本气象局的 RSMC 最佳轨迹数据的修改版。

加载一个包含加利福尼亚州手机信号发射塔数据的表。表的每行表示一个手机信号发射塔。表变量包括关于手机信号发射塔的数据,例如纬度和经度坐标。从表中提取纬度和经度坐标。

load cellularTowers.mat
lat = cellularTowers.Latitude;
lon = cellularTowers.Longitude;

根据坐标创建一个密度图。将每个点的影响半径指定为 50 公里。

geodensityplot(lat,lon,Radius=50e3)

默认情况下,geodensityplot 函数通过改变密度图的透明度来可视化密度。您也可以通过改变绘图颜色来可视化密度。

加载一个包含飓风轨迹数据的表。该表记录 200 多个飓风的轨迹,每隔 6 小时测量一次。从表中提取纬度和经度坐标。

load cycloneTracks.mat
lat = cycloneTracks.Latitude;
lon = cycloneTracks.Longitude;

根据坐标创建一个密度图。通过将 FaceColor 属性设置为 "interp" 来改变绘图颜色。

geodensityplot(lat,lon,FaceColor="interp")

更改颜色图,并添加带标签的颜色栏。如果不对数据进行加权,则密度图的单位是每平方米点数。请注意,该图使用透明度和颜色来可视化密度。

colormap turbo
c = colorbar;
c.Label.String = "Data points per square meter";

此示例使用来自日本气象局的 RSMC 最佳轨迹数据的修改版。

输入参数

全部折叠

以度为单位的纬度坐标,指定为由 [–90, 90] 范围内的元素组成的向量。向量可以包含 NaN 值。

latlon 的大小必须匹配。

示例: [43.0327 38.8921 44.0435]

数据类型: single | double

以度为单位的经度坐标,指定为向量。向量可以包含 NaN 值。

latlon 的大小必须匹配。

示例: [-107.5556 -77.0269 -72.5565]

数据类型: single | double

赋给数据的权重,指定为数值标量、数值向量或空数组 ([])。如果指定向量,则向量的大小必须与 latlon 的大小匹配。

此参量通常指定与 latlon 中的位置数据相关的其他数据。

目标地理坐标区,指定为 GeographicAxes 对象。 1 您可以通过设置 GeographicAxes 对象的属性来修改其外观和行为。有关属性列表,请参阅 GeographicAxes 属性

如果不指定此参量,则函数将在当前坐标区中绘图,前提是当前坐标区是地理坐标区。如果当前坐标区不是地理坐标区,或如果没有当前坐标区,则该函数将在一个新的地理坐标区中绘图。

名称-值参数

全部折叠

Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

示例: geodensityplot(lat,lon,FaceColor="g") 将密度图的面颜色设置为绿色。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: geodensityplot(lat,lon,"FaceColor","g") 将密度图的面颜色设置为绿色。

注意

使用名称-值参量为由此函数创建的 DensityPlot 对象的属性指定值。此处所列的属性只是一部分。有关完整列表,请参阅 DensityPlot Properties

密度计算的影响半径,以米为单位,指定为数值标量。

面透明度,指定为下列值之一:

  • 'interp' - 使用基于密度值的插值透明度。

  • 范围 [0, 1] 内的标量 - 在所有面上使用统一的透明度。值 1 表示不透明,值 0 表示完全透明。介于 01 之间的值表示半透明。

密度图的外观取决于 FaceAlphaFaceColor 属性。下表显示 FaceAlphaFaceColor 的不同组合如何影响该图的外观。

FaceColorFaceAlpha 的值效果示例密度图
  • FaceAlpha"interp"

  • FaceColor 是 RGB 三元组、十六进制颜色代码、颜色名称或短名称

密度图使用一种颜色,并通过改变透明度来传达密度信息。

Density plot in blue with varying transparency

  • FaceAlpha"interp"

  • FaceColor"interp"

密度图通过改变透明度和颜色来传达密度信息。

Density plot with varying transparency and a colormap that starts at dark blue and transitions to light blue, bright green, orange, yellow, and dark red. The blue regions of the plot are almost completely transparent. The red regions of the plot are opaque.

  • FaceAlpha 是标量值

  • FaceColor"interp"

密度图使用一个透明度值,并通过改变颜色来传达密度信息。

Density plot with consistent opacity and a colormap that starts at dark blue and transitions to light blue, bright green, orange, yellow, and dark red. The opacity makes the density plot look like a rectangle.

有关控制密度图的透明度的详细信息,请参阅Adjust Transparency of Geographic Density Plots

面颜色,指定为下列选项之一:

  • 'interp' - 使用基于密度值的插补着色。MATLAB® 从父坐标区的颜色图中选择颜色。选择此选项时,密度图的外观还取决于 FaceAlpha 属性的值。有关详细信息,请参阅 FaceAlpha 属性。

  • RGB 三元组、十六进制颜色代码、颜色名称或短名称 - 将一种颜色应用于密度图。当您选择此选项时,FaceAlpha 的值必须为 "interp"

RGB 三元组和十六进制颜色代码对于指定自定义颜色非常有用。

  • RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内,例如 [0.4 0.6 0.7]

  • 十六进制颜色代码是字符向量或字符串标量,以井号 (#) 开头,后跟三个或六个十六进制数字,范围可以是 0F。这些值不区分大小写。因此,颜色代码 "#FF8800""#ff8800""#F80""#f80" 是等效的。

此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。

颜色名称短名称RGB 三元组十六进制颜色代码外观
"red""r"[1 0 0]"#FF0000"

Sample of the color red

"green""g"[0 1 0]"#00FF00"

Sample of the color green

"blue""b"[0 0 1]"#0000FF"

Sample of the color blue

"cyan" "c"[0 1 1]"#00FFFF"

Sample of the color cyan

"magenta""m"[1 0 1]"#FF00FF"

Sample of the color magenta

"yellow""y"[1 1 0]"#FFFF00"

Sample of the color yellow

"black""k"[0 0 0]"#000000"

Sample of the color black

"white""w"[1 1 1]"#FFFFFF"

Sample of the color white

下表列出了浅色和深色主题中绘图的默认调色板。

调色板调色板颜色

"gem" - 浅色主题默认值

在 R2025a 之前的版本中: 大多数绘图默认使用这些颜色。

Sample of the "gem" color palette

"glow" - 深色主题默认值

Sample of the "glow" color palette

您可以使用 orderedcolorsrgb2hex 函数获取这些调色板的 RGB 三元组和十六进制颜色代码。例如,获取 "gem" 调色板的 RGB 三元组并将其转换为十六进制颜色代码。

RGB = orderedcolors("gem");
H = rgb2hex(RGB);

在 R2023b 之前的版本中: 使用 RGB = get(groot,"FactoryAxesColorOrder") 获取 RGB 三元组。

在 R2024a 之前的版本中: 使用 H = compose("#%02X%02X%02X",round(RGB*255)) 获取十六进制颜色代码。

提示

当您在地理坐标区上绘图时,geodensityplot 函数假定坐标参考 WGS84 坐标参考系。如果使用参考不同坐标参考系的坐标进行绘图,则坐标可能会显示为未对齐。

算法

密度图是具有不同透明度的曲面。geodensityplot 函数通过计算指定点的累积概率分布并根据点的密度改变透明度来创建曲面。

默认情况下,每个点对密度图的贡献是相等的。当您对点进行加权时,该函数会将关联点对密度图的贡献相乘。

版本历史记录

在 R2018b 中推出

全部展开


1 Alignment of boundaries and region labels are a presentation of the feature provided by the data vendors and do not imply endorsement by MathWorks®.