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...