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