GraduatedSymbolsRenderer

摘要

GraduatedSymbolsRenderer 类表示分级符号渲染器定义,即使用一系列符号大小显示要素值的定性差异。

说明

这些属性的行为类似于应用程序中显示的选项。 例如,更改分类数会自动调整间隔值及其标注。 如果更改 ClassBreakupperBound,则 classificationMethod 会自动更改为 ManualInterval。 您同样需要相应地手动更新 labels 和/或 descriptions 属性。

属性

属性说明数据类型
backgroundSymbol
(可读写)

表示图层中要素的背景符号的符号。 仅适用于面要素类。

Symbol
breakCount
(可读写)

表示与当前分类方法配合使用的分类数的整数。

Integer
classBreaks
(可读写)

ClassBreak 对象列表,用于访问诸如 labeldescription 的单个属性以及单个符号对象。

List
classificationField
(可读写)

表示用于图层分类方法的有效字段名称的字符串。

String
classificationMethod
(可读写)

表示有效分类方法的字符串。 有效值如下:

  • DefinedInterval定义的间隔
  • EqualInterval相等间隔
  • GeometricInterval几何间隔
  • ManualInterval手动间隔
  • NaturalBreaks自然间断点分级法 (Jenks)
  • Quantile分位数
  • StandardDeviation标准差
String
colorRamp
(可读写)

提供对 ColorRamp 对象的访问权限。

ColorRamp
deviationInterval
(可读写)

表示有效差间隔的双精度值,仅当 classificationMethod 被设为 StandardDeviation 时才可用。 有效值为 1.0、0.5、0.333 和 0.25。这些是应用程序提供的相同选项。

Double
intervalSize
(可读写)

表示间隔大小的双精度值,仅当 classificationMethod 被设为 DefinedInterval 时才可用。 有效值为 1.0、0.5、0.333 和 0.25。这些是应用程序提供的相同选项。

Double
lowerBound
(可读写)

一个双精度值,表示要显示的符号化 classificationField 的最小值。

注:

lowerBound 的值只能设置为第一个类中断范围内的值,否则其将会失败。 通过更改 upperBound 属性,可以在最后的类中断中修改最大值。

Double
maximumSymbolSize
(可读写)

表示最大分级符号大小的双精度值。

Double
minimumSymbolSize
(可读写)

表示最小分级符号大小的双精度值。

Double
normalizationField
(可读写)

表示用于归一化的有效图层字段名称的字符串。

String
normalizationType
(可读写)

表示有效归一化关键字的特定字符串。 例如,要清除归一化,请尝试 gradSymbols.renderer.nomalizationType = "<None>"

  • <None>无归一化
  • <percentage of total>总值百分比
  • <log>日志
String
symbolTemplate
(只读)

返回表示图层中所有要素的符号模板的符号。 要设置模板,请使用 updateSymbolTemplate 方法。

Symbol
type
(只读)

返回表示渲染器类型的字符串。

String

方法概述

方法说明
updateSymbolTemplate (symbol_template)

updateSymbolTemplate 提供一种可更改渲染器符号模板的机制。

方法

updateSymbolTemplate (symbol_template)
参数说明数据类型
symbol_template

引用符号

(默认值为 None)

Object

updateSymbolTemplate 方法使您可以立即修改所有分类间隔的符号。应用程序中符号模板的管理方式与其他渲染器属性不同(例如,backgroundSymbol),因此,需要一个可将符号模板设置为渲染器的方法。

代码示例

GraduatedSymbolsRenderer 示例 1

以下脚本首先测试图层的符号系统是否支持 renderer 属性。 然后,确认渲染器是否为 GraduatedSymbolsRenderer。 接下来,设置 backgroundSymbolsymbolTemplate。 然后,更改 classificationFieldbreakCount,并同样设置符号大小的最小值和最大值。 最后,将 ColorRamp 更改为名为黑色到白色的色带。

import arcpy, os, sys
relpath = os.path.dirname(sys.argv[0])

p = arcpy.mp.ArcGISProject(relpath + r"\\GraduatedSymbols.aprx")
m = p.listMaps("Layers")[0]
l = m.listLayers("Natural*")[0]
sym = l.symbology

if hasattr(sym, 'renderer'):
  if sym.renderer.type == "GraduatedSymbolsRenderer":
    #set background symbol
    sym.renderer.backgroundSymbol.applySymbolFromGallery("Extent Transparent Wide Gray")
    #set symbol template
    symTemp = sym.renderer.symbolTemplate
    symTemp.applySymbolFromGallery('Square 1')
    sym.renderer.updateSymbolTemplate(symTemp)
    #modify graduated symbol renderer
    sym.renderer.classificationField = "Shape_Area"
    sym.renderer.breakCount = 6
    sym.renderer.minimumSymbolSize = 10
    sym.renderer.maximumSymbolSize = 25
    sym.renderer.colorRamp = p.listColorRamps("Black to White")[0]

    l.symbology = sym
p.saveACopy(relpath + r"\\SavedOutput.aprx")
GraduatedColorsRenderer 示例 2

以下脚本用于修改渲染器符号化 classificationFieldlowerBoundupperBound 属性值。 它还将使用 Python CIM 访问以使用自动生成的默认符号显示超出范围的 classificationField 值。

p = arcpy.mp.ArcGISProject('current')
m = p.listMaps('LowerBoundResult')[0]
l = m.listLayers()[0]
if hasattr(l.symbology, 'renderer'):
  if l.symbology.renderer.type == 'GraduatedColorsRenderer':
    sym = l.symbology
    #Set lowerBound set on Renderer
    sym.renderer.lowerBound = 5
    #Set upperBound set on upper ClassBreak
    sym.renderer.classBreaks[-1].upperBound = 96 
    l.symbology = sym

    #Show values out of range using Python CIM Access
    l_cim = l.getDefinition('V3')
    l_cim.renderer.useDefaultSymbol = True
    l_cim.renderer.defaultLabel = "Out of range"
    l.setDefinition(l_cim)