updateSymbolTemplate
Краткая информация
Класс GraduatedSymbolsRenderer представляет собой метод отображения градуированными символами для визуализации качественных различий значений объектов с помощью диапазона размеров символов.
Обсуждение
Эти свойства действуют примерно так же, как и опции, использующиеся в приложении. Например, изменение числа классов автоматически перестроит граничные значения и их подписи. Если вы измените upperBound в ClassBreak, 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")
Следующий скрипт изменяет значения свойств lowerBound и upperBound для метода отображения символами classificationField. Он также использует доступ CIM Python для отображения значений, выходящих за пределы диапазона 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)