<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: [ArcPy] GraudatedColorRenderer error: incorrect labels produced in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/arcpy-graudatedcolorrenderer-error-incorrect/m-p/1620089#M74312</link>
    <description>&lt;P&gt;This works for me, the code applies&amp;nbsp;two-step process that first applies default symbology before modifying breaks and&amp;nbsp;applies symbology after setting breakCount.&lt;/P&gt;&lt;LI-CODE lang="c"&gt;# Step 1: First apply default graduated colors
sym = lyr.symbology
sym.updateRenderer('GraduatedColorsRenderer')
sym.renderer.classificationField = "Acres"
sym.renderer.breakCount = 5
lyr.symbology = sym  # This initializes the breaks

# Step 2: Now modify the breaks
sym = lyr.symbology  # Get fresh symbology

# Configure breaks
breaks = [
    (100, "0-100", [255, 190, 190, 100]),
    (200, "100-200", [255, 127, 127, 100]),
    (300, "200-300", [255, 0, 0, 100]),
    (400, "300-400", [230, 0, 0, 100]),
    (500, "400-500", [168, 0, 0, 100])
]

# Apply breaks
for i in range(5):
    sym.renderer.classBreaks[i].upperBound = breaks[i][0]
    sym.renderer.classBreaks[i].label = breaks[i][1]
    sym.renderer.classBreaks[i].symbol.color = {'RGB': breaks[i][2]}
    sym.renderer.classBreaks[i].lowerBound = 0 if i == 0 else breaks[i-1][0]

# Step 3: Final apply
lyr.symbology = sym

print("DONE: Graduated colors applied with 5 manual breaks")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 02 Jun 2025 18:58:21 GMT</pubDate>
    <dc:creator>TonyAlmeida</dc:creator>
    <dc:date>2025-06-02T18:58:21Z</dc:date>
    <item>
      <title>[ArcPy] GraudatedColorRenderer error: incorrect labels produced</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-graudatedcolorrenderer-error-incorrect/m-p/1619889#M74311</link>
      <description>&lt;P&gt;Hi there, I was doing some ArcPy coding (ArcGIS Pro 3.4.2). I was applying GraduatedColorRenderer + Manual + 5 classes + customized colors and labels to a feature layer. Everything of the result was good except the labels, not what I expected from my code (below).&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="error.png" style="width: 825px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/133565iBEAA946D43864559/image-size/large?v=v2&amp;amp;px=999" role="button" title="error.png" alt="error.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;LI-CODE lang="python"&gt;'''
I want to apply the GraudatedColorRenderer to my feature layer using the manual classification method.
I also want to use my own colors and labels for each class.
However, the result show different labels and I cannot figure what the problem is.
'''

import arcpy

arcpy.env.overwriteOutput = True  

# Obtain the current project and map
project = arcpy.mp.ArcGISProject("CURRENT")
map = project.listMaps("Map")[0]  

# Obtain the feature layer
layer = map.listLayers("Ottawa_Census")[0]  

# Use GraduatedColorsRenderer
sym = layer.symbology
sym.updateRenderer('GraduatedColorsRenderer')
print('Renderer has been updated to GraudatedColorRenderer')

# Set the classification field, method, and the number of classes   
sym.renderer.classificationField = "POP_2016"
sym.renderer.classificationMethod = "Manual"
sym.renderer.breakCount = 5
print('Classification field, method, and breakcount have been set.')

# Customized settings
manual_breaks = [500, 1000, 2000, 3000, 20000]  
manual_colors = [
    {'RGB': [255, 190, 190, 100]},     
    {'RGB': [255, 127, 127, 100]},   
    {'RGB': [255, 0, 0, 100]},      
    {'RGB': [230, 0, 0, 100]},   
    {'RGB': [168, 0, 0, 100]}     
]
manual_labels = [
    "0.0-500",
    "500-1000",
    "1000-2000",
    "2000-3000",
    "3000-20000"
]
print('Breaks, colors, and labels have been set.')

# Apply the above settings
for i, brk in enumerate(sym.renderer.classBreaks):
    brk.label = manual_labels[i]
    brk.symbol.color = manual_colors[i]
    brk.upperBound = manual_breaks[i]
    

layer.symbology = sym

project.save()
pdf = arcpy.mp.CreateExportFormat('PDF', r'D:\Learning ArcPy\challenge\layout_export.pdf')
project.listLayouts()[0].export(pdf)
print("Task done!")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 02 Jun 2025 11:37:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-graudatedcolorrenderer-error-incorrect/m-p/1619889#M74311</guid>
      <dc:creator>brusselsboy</dc:creator>
      <dc:date>2025-06-02T11:37:35Z</dc:date>
    </item>
    <item>
      <title>Re: [ArcPy] GraudatedColorRenderer error: incorrect labels produced</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-graudatedcolorrenderer-error-incorrect/m-p/1620089#M74312</link>
      <description>&lt;P&gt;This works for me, the code applies&amp;nbsp;two-step process that first applies default symbology before modifying breaks and&amp;nbsp;applies symbology after setting breakCount.&lt;/P&gt;&lt;LI-CODE lang="c"&gt;# Step 1: First apply default graduated colors
sym = lyr.symbology
sym.updateRenderer('GraduatedColorsRenderer')
sym.renderer.classificationField = "Acres"
sym.renderer.breakCount = 5
lyr.symbology = sym  # This initializes the breaks

# Step 2: Now modify the breaks
sym = lyr.symbology  # Get fresh symbology

# Configure breaks
breaks = [
    (100, "0-100", [255, 190, 190, 100]),
    (200, "100-200", [255, 127, 127, 100]),
    (300, "200-300", [255, 0, 0, 100]),
    (400, "300-400", [230, 0, 0, 100]),
    (500, "400-500", [168, 0, 0, 100])
]

# Apply breaks
for i in range(5):
    sym.renderer.classBreaks[i].upperBound = breaks[i][0]
    sym.renderer.classBreaks[i].label = breaks[i][1]
    sym.renderer.classBreaks[i].symbol.color = {'RGB': breaks[i][2]}
    sym.renderer.classBreaks[i].lowerBound = 0 if i == 0 else breaks[i-1][0]

# Step 3: Final apply
lyr.symbology = sym

print("DONE: Graduated colors applied with 5 manual breaks")&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 02 Jun 2025 18:58:21 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-graudatedcolorrenderer-error-incorrect/m-p/1620089#M74312</guid>
      <dc:creator>TonyAlmeida</dc:creator>
      <dc:date>2025-06-02T18:58:21Z</dc:date>
    </item>
    <item>
      <title>Re: [ArcPy] GraudatedColorRenderer error: incorrect labels produced</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-graudatedcolorrenderer-error-incorrect/m-p/1620301#M74314</link>
      <description>&lt;P&gt;Thank you &lt;a href="https://community.esri.com/t5/user/viewprofilepage/user-id/3265"&gt;@TonyAlmeida&lt;/a&gt;&amp;nbsp;so much.&amp;nbsp;I have tested your code with my dataset. It worked perfectly. I don't consider using the &lt;STRONG&gt;&lt;EM&gt;lowerBound&lt;/EM&gt; &lt;/STRONG&gt;property, as it isn't explicitly listed on &lt;A title="the ClassBreak class documentation page" href="https://pro.arcgis.com/en/pro-app/latest/arcpy/mapping/classbreak-class.htm" target="_self"&gt;the ClassBreak class documentation page&lt;/A&gt;.&amp;nbsp; I think you idea of first applying the GraduatedColorRenderer and then changing it is the key to the solution.&lt;/P&gt;</description>
      <pubDate>Wed, 04 Jun 2025 14:33:22 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-graudatedcolorrenderer-error-incorrect/m-p/1620301#M74314</guid>
      <dc:creator>brusselsboy</dc:creator>
      <dc:date>2025-06-04T14:33:22Z</dc:date>
    </item>
    <item>
      <title>Re: [ArcPy] GraudatedColorRenderer error: incorrect labels produced</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-graudatedcolorrenderer-error-incorrect/m-p/1620304#M74315</link>
      <description>&lt;LI-CODE lang="python"&gt;import arcpy
arcpy.env.overwriteOutput = True  
project = arcpy.mp.ArcGISProject("CURRENT")
map = project.listMaps("Map")[0]  
lyr = map.listLayers("Ottawa_Census")[0]  

# Step 1: First apply default graduated colors
sym = lyr.symbology
sym.updateRenderer('GraduatedColorsRenderer')
sym.renderer.classificationField = "POP_2016"
sym.renderer.breakCount = 5
lyr.symbology = sym  # This initializes the breaks

# Step 2: Now modify the breaks
sym = lyr.symbology  # Get fresh symbology
#print(sym.renderer.breakCount)
# Configure breaks
breaks = [                     # I prefer lists to sets but both work.
    [500, "0-500", [255, 190, 190, 100]],
    [1000, "501-1000", [255, 127, 127, 100]],
    [2000, "1001-2000", [255, 0, 0, 100]],
    [3000, "2001-3000", [230, 0, 0, 100]],
    [2000, "3001-20000", [168, 0, 0, 100]]
]

# Apply breaks
for i in range(5):
    sym.renderer.classBreaks[i].upperBound = breaks[i][0]
    sym.renderer.classBreaks[i].label = breaks[i][1]
    sym.renderer.classBreaks[i].symbol.color = {'RGB': breaks[i][2]}

# Step 3: Final apply
lyr.symbology = sym

print("DONE: Graduated colors applied with 5 manual breaks")

project.save()
pdf = arcpy.mp.CreateExportFormat('PDF', r'D:\Learning ArcPy\challenge\layout_export.pdf')
project.listLayouts()[0].export(pdf)
print("Task done!")&lt;/LI-CODE&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot 2025-06-02 222704.jpg" style="width: 592px;"&gt;&lt;img src="https://community.esri.com/t5/image/serverpage/image-id/133647i34A13E335869BE99/image-size/large?v=v2&amp;amp;px=999" role="button" title="Screenshot 2025-06-02 222704.jpg" alt="Screenshot 2025-06-02 222704.jpg" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 04 Jun 2025 14:32:58 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-graudatedcolorrenderer-error-incorrect/m-p/1620304#M74315</guid>
      <dc:creator>brusselsboy</dc:creator>
      <dc:date>2025-06-04T14:32:58Z</dc:date>
    </item>
  </channel>
</rss>

