在 python 中使用 arcpy GradedColorsRenderer 从要素中删除轮廓

问题描述 投票:0回答:1

ArcGIS Pro 2.8.8 Python 3.7 和 arcpy 2.8 标准 arcpy(无插件)。 使用Python和arcpy,我尝试在运行一个进程后对图层进行样式设置,以便它使用渐变颜色,并且特征周围没有轮廓。我已经查阅了 Esri 文档并提供了帮助,但找不到解决方案。有一个使用 slayer.symbology.outlineColor = {'RGB' : [0, 0, 0, 0]} 实现的解决方案,但是当我添加它时什么也没有发生,甚至没有错误消息。

aprx = apArcGISProject('current')
map = aprx.listMaps('Map')[0]
slayer = map.listLayers('GRID')[0]
query = 'vals > 0'
slayer.definitionQuery = query
style = slayer.symbology

style.updateRenderer('GraduatedColorsRenderer')
style.renderer.classificationField = 'vals'
style.renderer.breakCount = 5
style.renderer.classificationMethod = 'Quantile'
style.renderer.colorRamp = aprx.listColorRamps('Yellow to Red')[0]

slayer.symbology = style
slayer.symbology.outlineColor = {'RGB' : [0, 0, 0, 0]}
layout = aprx.listLayouts(user4)[0]
python arcgis arcpy
1个回答
0
投票

我在https://pro.arcgis.com/en/pro-app/latest/arcpy/mapping/classbreak-class.htm中找到了解决方案,通过进入classBreaks类,您可以循环每个中断并更改属性那里。这是可以在 GradedColoursRenderer 渲染器类型中编辑outlineWidth 和outlineColor 的地方。请注意 style.renderer.colorRamp = aprx.listColorRamps('Yellow to Red')[0] 行之后的 for 循环...

aprx = apArcGISProject('current')
map = aprx.listMaps('Map')[0]
slayer = map.listLayers('GRID')[0]
query = 'vals > 0'
slayer.definitionQuery = query
style = slayer.symbology

style.updateRenderer('GraduatedColorsRenderer')
style.renderer.classificationField = 'vals'
style.renderer.breakCount = 5
style.renderer.classificationMethod = 'Quantile'
style.renderer.colorRamp = aprx.listColorRamps('Yellow to Red')[0]
for brk in style.renderer.classBreaks:
    brk.symbol.outlineColor = {'RGB' : [0,0,0,0]} # Changes the Outline Colour
    brk.symbol.outlineWidth = 0 # Changes the Outline Width

slayer.symbology = style
slayer.symbology.outlineColor = {'RGB' : [0, 0, 0, 0]}
layout = aprx.listLayouts(user4)[0]
© www.soinside.com 2019 - 2024. All rights reserved.