[Python] Arcpy manually assign class breaks

Discussão em 'Python' iniciado por Stack, Junho 25, 2025.

  1. Stack

    Stack Membro Participativo

    I want to have dynamic symbology by manually assigning values for class breaks:

    • ≤ min
    • min - max
    • > max

    I've come up with the function below, the issue is that it does not create the number of breaks that I want. Instead it created 4 class breaks using the with random class breaks.

    def update_class_breaks(layer, breaks, classificationField):
    min_val = float(breaks[0])
    max_val = float(breaks[1])
    sym = layer.symbology

    if hasattr(sym, 'renderer') and sym.renderer.type == "GraduatedColorsRenderer":
    sym.updateRenderer('GraduatedColorsRenderer')
    renderer = sym.renderer
    renderer.classificationField = classificationField
    renderer.classificationMethod = 'Manual'
    renderer.breakCount = 3

    class_breaks = renderer.classBreaks

    class_breaks[0].classMinValue = float('-inf')
    class_breaks[0].classMaxValue = min_val

    class_breaks[1].classMinValue = min_val
    class_breaks[1].classMaxValue = max_val

    class_breaks[2].classMinValue = max_val
    class_breaks[2].classMaxValue = float('inf')

    class_breaks[0].label = f"≤ {min_val}"
    class_breaks[1].label = f"{min_val} - {max_val}"
    class_breaks[2].label = f"> {max_val}"

    layer.symbology = sym
    else:
    appLog.warning("Layer does not support GraduatedColorsRenderer or renderer missing.")

    Continue reading...

Compartilhe esta Página