描述
GraduatedSymbolsRenderer 类表示分级符号渲染器定义,即使用一系列符号大小显示要素值的定性差异。
讨论
这些属性的行为类似于应用程序中显示的选项。例如,更改分类数会自动调整间隔值及其标注。如果更改 ClassBreak 的 upperBound,则 classificationMethod 会自动更改为 ManualInterval。您同样需要相应地手动更新 labels 和/或 descriptions 属性。
属性
属性 | 说明 | 数据类型 |
backgroundSymbol (可读写) | 表示图层中要素的背景符号的符号。仅适用于面要素类。 | Symbol |
breakCount (可读写) | 表示与当前分类方法配合使用的分类数的整数。 | Integer |
classBreaks (可读写) | ClassBreak 对象列表用于访问诸如 label 和 description 的单个属性以及单个符号对象。 | List |
classificationField (可读写) | 表示用于图层分类方法的有效字段名称的字符串。 | String |
classificationMethod (可读写) | 表示有效分类方法的字符串。有效值如下:
| 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 |
maximumSymbolSize (可读写) | 表示最大分级符号大小的双精度值。 | Double |
minimumSymbolSize (可读写) | 表示最小分级符号大小的双精度值。 | Double |
normalizationField (可读写) | 表示用于归一化的有效图层字段名称的字符串。 | String |
normalizationType (可读写) | 表示有效归一化关键字的特定字符串。例如,要清除归一化,请尝试 gradSymbols.renderer.nomalizationType = "<None>"。
| String |
symbolTemplate (只读) | 返回表示图层中所有要素的符号模板的符号。要设置模板,请使用 updateSymbolTemplate 方法。 | Symbol |
type (只读) | 返回表示渲染器类型的字符串。 | String |
方法概述
方法 | 说明 |
updateSymbolTemplate (symbol_template) | updateSymbolTemplate 提供一种可更改渲染器符号模板的机制。 |
方法
updateSymbolTemplate (symbol_template)
参数 | 说明 | 数据类型 |
symbol_template | 引用符号。 (默认值为 None) | Object |
updateSymbolTemplate 方法使您可以立即修改所有分类间隔的符号。应用程序中符号模板的管理方式与其他渲染器属性不同(例如,backgroundSymbol),因此,需要一个可将符号模板设置为渲染器的方法。
代码示例
以下脚本首先测试图层的符号系统是否支持 renderer 属性。然后,确认渲染器是否为 GraduatedSymbolsRenderer。接下来,设置 backgroundSymbol 和 symbolTemplate。然后,更改 classificationField 和 breakCount,并同样设置符号大小的最小值和最大值。最后,将 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")