Main Content

GeographicRuler 属性

控制具有地理值的轴

GeographicRuler 属性控制 GeographicAxes 对象中纬度轴和经度轴的外观和行为。每一个单独的轴都有它自己的标尺对象。通过更改标尺的属性值,您可以修改特定轴的某些方面。

通过设置地理坐标区的属性而不是设置标尺的属性,可以自定义标尺的某些方面。例如,通过设置每个 GeographicRuler 对象的 Color 属性,可以为每个标尺指定不同颜色。但是,通过设置 GeographicAxes 对象的 AxisColor 属性,可以保持标尺的外观一致。

使用圆点表示法引用特定的标尺和属性。通过 GeographicAxes 对象的 LatitudeAxisLongitudeAxis 属性访问标尺对象。

geoplot(1:10,1:10)
gx = gca;
co = gx.LatitudeAxis.Color;
gx.LatitudeAxis.Color = "blue";

外观

全部展开

此 属性 为只读。

最小和最大坐标轴范围,以 [min max] 形式的二元素向量返回。

要设置 GeographicAxes 对象的范围,请使用 geolimits 函数。

注意

纬度轴和经度轴的 Limits 属性值分别与父 GeographicAxes 对象的 LatitudeLimitsLongitudeLimits 属性值匹配。

示例: latlim = gx.LatitudeAxis.Limits;

轴线和标签的颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短颜色名称。

对于自定义颜色,请指定 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

"none"不适用不适用不适用无颜色

以下是 MATLAB® 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

注意

设置父坐标区的 AxisColor 属性会将标尺对象的 Color 属性设置为相同的值。但是,设置标尺的属性不会影响父坐标区。要防止轴属性值覆盖标尺属性值,请先设置轴值,然后设置标尺值。

示例: gx.LatitudeAxis.Color = "b"

示例: gx.LatitudeAxis.Color = "blue"

示例: gx.LatitudeAxis.Color = [0.1 0.7 0.8];

示例: gx.LatitudeAxis.Color = "#0000FF";

轴线和刻度线的宽度,指定为以磅为单位的正值。一磅等于 1/72 英寸。

注意

设置父坐标区的 LineWidth 属性会将标尺对象的 LineWidth 属性设置为相同的值。但是,设置标尺的属性不会影响父坐标区。要防止轴属性值覆盖标尺属性值,请先设置轴值,然后设置标尺值。

示例: gx.LatitudeAxis.LineWidth = 2;

轴标签,指定为 Text 对象。

要更改现有文本,请设置 Text 对象的 String 属性。使用其他属性更改文本外观,例如字体大小或颜色。

以下代码说明如何将纬度轴标签的文本更改为 "Latitude Axis",将经度轴标签的字体大小更改为 16

gx = geoaxes;
gx.LatitudeAxis.Label.String = "Latitude Axis";
gx.LongitudeAxis.Label.FontSize = 16;

如需完整的选项列表,请参阅 Text 属性

Geographic axes with customized latitude and longitude axis labels. The latitude axis label has updated text and the longitude axis label is larger.

注意

  • 文本对象不是标尺对象的子级,因此无法由 findobj 返回,而且它也不使用默认的文本属性值。

  • 存储在此属性中的文本对象与存储在父对象的标签属性中的文本对象相同。因此,可以使用标尺或父对象的属性来修改文本对象。例如,设置存储在纬度轴标尺的 Label 属性中的文本对象的字体大小,等效于设置存储在父坐标区的 LatitudeLabel 属性中的文本对象的字体大小。

轴标签水平对齐,指定为表中的值之一。

LabelHorizontalAlignment描述外观
'center'

对于水平轴,标签位于图框的左右边缘之间的中间位置。

对于垂直轴,标签位于图框的上下边缘之间的中心位置。

Horizontal and a vertical axis labels that are centered.

'left'

对于水平轴,标签与图框的左边缘对齐。

对于垂直轴,标签与图框的下边缘对齐。

Horizontal and a vertical axis labels that left-aligned.

'right'

对于水平轴,标签与图框的右边缘对齐。

对于垂直轴,标签与图框的上边缘对齐。

Horizontal and a vertical axis labels that right-aligned.

轴标尺可见性,指定为 'on''off',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

  • 'on' - 显示轴标尺。

  • 'off' - 隐藏轴标尺而不删除它。您仍可以使用标尺对象访问不可见轴标尺的属性。

示例: gx.LatitudeAxis.Visible = "off";

刻度值和标签

全部展开

坐标轴上的刻度线位置,指定为由递增值组成的向量。

如果您为此属性赋值,则 MATLAB 会将 TickValuesMode 属性设置为 'manual'

示例: gx.LatitudeAxis.TickValues = [-15 -10 0 10 15];

示例: gx.LongitudeAxis.TickValues = 0:10:100;

TickValues 属性的选择模式,指定为下列值之一:

  • 'auto' - 根据地图的范围和坐标区的位置(大小)自动选择刻度值。

  • 'manual' - 使用您指定的刻度值。要指定值,请设置 TickValues 属性。

刻度线标签,指定为字符向量元胞数组或字符串数组。如果您没有为所有刻度值指定足够多的标签,将会重复使用标签。标签支持 TeX 和 LaTeX 标记。有关详细信息,请参阅 TickLabelInterpreter 属性。

示例: gx.TickValues = [-66.5 -23.5 0 23.5 66.5];

示例: gx.LatitudeAxis.TickLabels = {'Antarctic Circle','Tropic of Capricorn','Equator','Tropic of Cancer','Arctic Circle'};

如果您设置此属性,MATLAB 会将 TickLabelsMode 属性设置为 'manual'

数据类型: char | string

TickLabels 属性的选择模式,指定为下列值之一:

  • 'auto' - 自动选择刻度标签。

  • 'manual' - 使用您指定的刻度标签。要指定标签,请设置 TickLabels 属性。

刻度标签颜色,指定为 RGB 三元组、十六进制颜色代码、颜色名称或短名称。

对于自定义颜色,请指定 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

"none"不适用不适用不适用无颜色

以下是 MATLAB 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。

RGB 三元组十六进制颜色代码外观
[0 0.4470 0.7410]"#0072BD"

Sample of RGB triplet [0 0.4470 0.7410], which appears as dark blue

[0.8500 0.3250 0.0980]"#D95319"

Sample of RGB triplet [0.8500 0.3250 0.0980], which appears as dark orange

[0.9290 0.6940 0.1250]"#EDB120"

Sample of RGB triplet [0.9290 0.6940 0.1250], which appears as dark yellow

[0.4940 0.1840 0.5560]"#7E2F8E"

Sample of RGB triplet [0.4940 0.1840 0.5560], which appears as dark purple

[0.4660 0.6740 0.1880]"#77AC30"

Sample of RGB triplet [0.4660 0.6740 0.1880], which appears as medium green

[0.3010 0.7450 0.9330]"#4DBEEE"

Sample of RGB triplet [0.3010 0.7450 0.9330], which appears as light blue

[0.6350 0.0780 0.1840]"#A2142F"

Sample of RGB triplet [0.6350 0.0780 0.1840], which appears as dark red

注意

设置标尺的 Color 属性也会将 TickLabelColor 属性设置为相同的值。但是,设置 TickLabelColor 属性不会更改 Color 属性。为了防止 Color 属性值覆盖 TickLabelColor 属性值,请先设置 Color 属性,然后设置 TickLabelColor 属性。

刻度标签中字符的解释,指定为下列值之一:

  • 'tex' - 使用 TeX 标记子集解释字符。

  • 'latex' - 使用 LaTeX 标记解释字符。

  • 'none' - 显示字面字符。

有关这些解释器的详细信息,请参阅 Text 属性 参考页上的 Interpreter 属性。

示例: gx.LatitudeAxis.TickLabelInterpreter = 'latex';

刻度标签格式,指定为下列值之一。

格式描述示例
"dd"十进制度加上指南针方向23°N
"dm"度和十进制分加上指南针方向18°30'W
"dms"(默认值)度、分、十进制秒加上指南针方向110°06'18.5"E
"-dd"十进制度,用减号 (-) 表示南纬和西经-115.25°
"-dm"度和十进制分,用减号 (-) 表示南纬和西经-5°45.5'
"-dms"度、分和十进制秒,用减号 (-) 表示南纬和西经-3°21'05"

您也可以使用 geotickformat 函数指定刻度标签格式。

注意

设置父坐标区的 TickLabelFormat 属性会将标尺对象的 TickLabelFormat 属性设置为相同的值。但是,设置标尺的属性不会影响父坐标区。要防止轴属性值覆盖标尺属性值,请先设置轴值,然后设置标尺值。

示例: gx.LatitudeAxis.TickLabelFormat = "dd";

刻度标签的旋转,指定为以度为单位的标量值。正值将导致按逆时针旋转。负值产生顺时针旋转。

Sample rotated tick label

如果您为此属性赋值,则 MATLAB 会将 TickLabelRotation 属性设置为 'manual'

示例: gx.LatitudeAxis.TickLabelRotation = -45;

示例: gx.LongitudeAxis.TickLabelRotation = 45;

TickLabelRotation 属性的选择模式,指定为下列值之一:

  • 'auto' - 对象自动选择刻度标签旋转方式。

  • 'manual' - 使用您指定的刻度标签旋转方式。要指定旋转方式,请设置 TickLabelRotation 属性。

刻度线方向,指定为下列值之一:

  • 'in' - 刻度线从轴线指向内部。这是二维视图的默认值。

  • 'out' - 刻度线从轴线指向外部。这是三维视图的默认值。

  • 'both' - 刻度线以轴线为中心。

  • 'none' - 不显示任何刻度线。

如果您为此属性赋值,则 MATLAB 会将 TickDirectionMode 属性设置为 'manual'

注意

设置父坐标区的 TickDir 属性会将标尺的 TickDirection 属性设置为相同的值。但是,设置标尺属性不会设置坐标区属性。要防止坐标区属性值覆盖标尺属性值,请先设置坐标区值,然后设置标尺值。

TickDirection 属性的选择模式,指定为下列值之一:

  • 'auto' - 自动选择刻度方向。

  • 'manual' - 使用您指定的刻度方向。要指定刻度方向,请设置 TickDirection 属性。

刻度线长度,指定为 [length unused] 形式的二元素向量。第一个元素是刻度线长度。地理标尺不使用第二个元素,但为了与其他标尺对象保持一致,包含第二个元素。指定值时采用的是以坐标区最长维度为基准的归一化单位。

注意

设置父坐标区的 TickLength 属性会将标尺对象的 TickLength 属性设置为相同的值。但是,设置标尺的属性不会影响父坐标区。要防止轴属性值覆盖标尺属性值,请先设置轴值,然后设置标尺值。

示例: gx.LatitudeAxis.TickLength = [0.04 0];

字体

全部展开

字体名称,指定为系统支持的字体名称或 'FixedWidth'。默认字体取决于特定的操作系统和区域设置。要使用在任何区域设置中都有较好显示效果的等宽字体,请指定 'FixedWidth'。使用的实际等宽字体取决于根对象的 FixedWidthFontName 属性。

注意

设置父坐标区的 FontName 属性会将标尺对象的 FontName 属性设置为相同的值。但是,设置标尺的属性不会影响父坐标区。要防止轴属性值覆盖标尺属性值,请先设置轴值,然后设置标尺值。

示例: gx.LatitudeAxis.FontName = "Cambria";

字体大小,指定为数值标量。默认字体大小取决于具体操作系统和区域设置。

注意

  • 设置父坐标区的 FontSize 属性会将标尺的 FontSize 属性设置为相同的值。但是,设置标尺属性不会设置坐标区属性。要防止轴属性值覆盖标尺属性值,请先设置轴值,然后设置标尺值。

  • 在标尺上设置 FontSize 属性会更改刻度标签的大小。MATLAB 还会使用父坐标区的 LabelFontSizeMultiplier 更新对应坐标区标签的字体大小。例如,将纬度轴标尺的字体大小设置为 12 会将父坐标区的 LatitudeLabel 属性的字体大小设置为 LabelFontSizeMultiplier 属性值的 12 倍。

示例: gx.LatitudeAxis.FontSize = 12;

文本字符的粗细,指定为下列值之一:

  • 'normal' - 特定字体定义的默认粗细。

  • 'bold' - 字符轮廓比普通字符粗。

MATLAB 使用 FontWeight 属性从系统提供的字体中选择一种字体。并非所有字体都有加粗字体。因此,指定加粗字体仍可能得到普通字体。

注意

设置父坐标区的 FontWeight 属性会将标尺对象的 FontWeight 属性设置为相同的值。但是,设置标尺的属性不会影响父坐标区。要防止轴属性值覆盖标尺属性值,请先设置轴值,然后设置标尺值。

示例: gx.LatitudeAxis.FontWeight = "bold";

字符倾斜,指定为 'normal''italic'。并非所有字体都有两种字体样式。因此,斜体可能看上去与常规字体一样。

注意

设置父坐标区的 FontAngle 属性会将标尺对象的 FontAngle 属性设置为相同的值。但是,设置标尺的属性不会影响父坐标区。要防止轴属性值覆盖标尺属性值,请先设置轴值,然后设置标尺值。

示例: gx.LatitudeAxis.FontAngle = "italic";

字符平滑处理,指定为 'on''off',或者指定为数值或逻辑值 1 (true) 或 0 (false)。值 'on' 等效于 true'off' 等效于 false。因此,您可以使用此属性的值作为逻辑值。该值存储为 matlab.lang.OnOffSwitchState 类型的 on/off 逻辑值。

  • 'on' - 使用消除锯齿功能,以改善文本字符的锯齿状外观并使文本更易于阅读。在某些情况下,经过平滑处理的文本在背景色下会产生模糊效果。

  • 'off' - 不使用消除锯齿功能。在文本看似模糊时使用此设置。

示例: gx.LatitudeAxis.FontSmoothing = "off";

注意

FontSmoothing 属性在以后的版本中将不起作用。无论该属性的值如何,都将启用字体平滑处理。

回调

全部展开

坐标轴范围更改后执行的回调,指定为下列值之一:

  • 函数句柄。

  • 第一个元素是函数句柄的元胞数组。元胞数组中的后续元素是传递到回调函数的参数。

  • 包含有效 MATLAB 表达式的字符向量(不推荐)。MATLAB 在基础工作区计算此表达式。

此回调在坐标轴范围更改后执行,或以编程方式执行,或使用交互(例如在坐标区内平移)执行。当您调用绘图函数时,如果 MATLAB 更改坐标轴范围以包含您的数据范围,也会执行此回调。

此回调函数可以访问有关轴范围的特定信息。MATLAB 在 LimitsChanged 对象中将此信息作为第二个参数传递给回调函数。如果您在 App 设计工具中开发 App,该参数称为 event。您可以使用圆点表示法查询对象属性。例如,event.NewLimits 返回新坐标轴范围。LimitsChanged 对象不可用于指定为字符向量的回调函数。

下表列出了 LimitsChanged 对象的属性。

属性

描述

Source

执行回调的标尺对象

EventName

'LimitsChanged'

OldLimits

包含先前坐标轴范围的二元素向量

NewLimits

包含新坐标轴范围的二元素向量

有关在 App 中编写回调的详细信息,请参阅App 设计工具中的回调

父级/子级

全部展开

标尺的父级,指定为 GeographicAxes 对象。

注意

标尺对象未在父级 GeographicAxes 对象的 Children 属性中列出。

标尺没有任何子级。您不能设置该属性。

版本历史记录

在 R2019a 中推出

全部展开