Skip to main content

GraduatedColorsRenderer

汇总

GraduatedColorsRenderer 类表示分级色彩渲染器定义,即使用一系列色彩显示要素值的定性差异。

讨论

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

属性

名称 说明 数据类型

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 时才可用。

Double

lowerBound

(读取和写入)

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

注:

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

Double

normalizationField

(读取和写入)

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

String

normalizationType

(读取和写入)

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

  • <None>—无归一化

  • <percentage of total>—总值百分比

  • <log>—对数

String

type

(只读)

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

String

代码示例

GraduatedColorsRenderer 示例 1

以下脚本首先测试图层的符号系统是否支持 renderer 属性,然后确认渲染器是否为 SimpleSymbolRenderer 。 接下来,将该渲染器更改为 GraduatedColorsRenderer ,它将更改 classificationFieldbreakCount 。 最后,将 ColorRamp 更改为名为 青色到紫色 的色带。

import arcpy, os, sys

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

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

if hasattr(sym, 'renderer'):
  if sym.renderer.type == 'SimpleRenderer':
    sym.updateRenderer('GraduatedColorsRenderer')
    sym.renderer.classificationField = 'Shape_Area'
    sym.renderer.breakCount = 10
    sym.renderer.colorRamp = p.listColorRamps('Cyan to Purple')[0]

    l.symbology = sym

p.saveACopy(relpath + r'\\SavedOutput.aprx')
GraduatedColorsRenderer 示例 2

以下脚本用于对使用分级色彩渲染器的面图层的符号系统进行修改。 它将设置 classificationFieldbreakCount ,遍历每一个分类间隔并修改 upperBoundlabeldescription ,以及诸如 coloroutlineColorsize 等符号属性。 每一个间隔的标注都格式化为包含上千个分隔符。 填充颜色由红色向蓝色渐变,轮廓颜色由蓝色变为红色且每个间隔处的尺寸会增加。

# -*- coding: utf-8 -*-
import arcpy, os, sys, locale

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

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

sym = l.symbology
sym.renderer.classificationField = "Shape_Area"
sym.renderer.breakCount = 7

breakVal = 100000000000
cv = 0
lw = 1
for brk in sym.renderer.classBreaks:
  brk.upperBound = breakVal
  brk.label = "\u2264" + str(locale.format("%d", breakVal, grouping=True))
  brk.description = "Description " + str(cv)
  brk.symbol.color = {'HSV' : [cv, 100, 100, 100]}
  brk.symbol.outlineColor = {'HSV' : [240-cv, 100, 100, 100]}
  brk.symbol.size = lw

  breakVal +=100000000000
  cv += 40
  lw += 0.5
l.symbology = sym

p.saveACopy(relpath + r'\\SavedOutput.aprx')
GraduatedColorsRenderer 示例 3

以下脚本用于修改渲染器符号化 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)