【arcpy批量制图】自动化制图(符号系统)

栅格使用colorizer updateColorizer 矢量使用renderer updateRenderer

简单符号系统

读取某一要素,为简单符号;改变其颜色、轮廓和尺寸

import arcpy.mp as map
try:
    aprx = map.ArcGISProject("CURRENT")
    for m in aprx.listMaps("Map"):
        for lyr in m.listLayers("Parcels"):
            if lyr.isFeatureLayer:
                sym = lyr.symbology
                #按名称设置
                sym.renderer.symbol.applySymbolFromGallery("机场跑道")
                #改变颜色
                sym.renderer.symbol.color ={'RGB': [255, 255, 190, 25]}
                #轮廓颜色
                sym.renderer.symbol.outlineColor ={'CMYK': [25, 50, 75, 25, 100]}
                #尺寸
                sym.renderer.symbol.size = 1.0
                lyr.symbology = sym
except Exception as e:
    print("Error: " + e.args[0])

渐变符号系统

1,列出工程已有的色带

aprx = arcpy.mp.ArcGISProject('CURRENT')
#列出色带名称
for cr in aprx.listColorRamps():
    print(cr.name)

2,设置分级色彩

import arcpy.mp as map
try:
    aprx=map.ArcGISProject("CURRENT")
    for m in aprx.listMaps("Map"):
        for lyr in m.listLayers("Parcels"):
            if lyr.isFeatureLayer:
                sym=lyr.symbology
                #设置渲染器
                sym.updateRenderer("GraduatedColorsRenderer")
                #渲染字段
                sym.renderer.classificationField = 'ACRES'
                #分类方法
                sym.renderer.classificationMethod ='NaturalBreaks'
                #类数
                sym.renderer.breakCount = 5
                sym.renderer.colorRamp =aprx.listColorRamps("热点图:深品红-黄")[0]
                lyr.symbology = sym
except Exception as e:
    print("ERROE:"+e.arg[0])

唯一值符号系统

import arcpy.mp as map
try:
    aprx=map.ArcGISProject("CURRENT")
    for m in aprx.listMaps("Streets and Railroads"):
        for lyr in m.listLayers("Street_Centerlines"):
            if lyr.isFeatureLayer:
                sym=lyr.symbology
                #设置渲染器 栅格使用sym.updateColorizer("RasterUniqueValueColorizer")
                sym.updateRenderer("UniqueValueRenderer")
                #渲染字段 栅格使用sym.colorizer.field = 'Count' 
                #唯一值 不用list
                sym.renderer.field = ['Condition'] #因为可基于多个字段建立一组唯一值。因此,fields 属性将使用列表,即使其中只使用了一个字段。
                #读取每个字段,赋予不同的颜色 栅格使用sym.Colorizer
                for grp in sym.renderer.groups:
                    for itm in grp.items:
                        if itm.label == "Poor":
                            itm.symbol.color = {"RGB":[255, 0, 0, 100]}
                        elif itm.label == "Fair":
                            itm.symbol.color = {"RGB":[0, 92, 230, 100]}
                        elif itm.label == "Good":
                            itm.symbol.color = {"RGB":[38, 115, 0, 100]}
                lyr.symbology = sym
except Exception as e:
    print("ERROE:"+e.arg[0])
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燕南路GISer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值