最近老是有一大堆的任务,要你批量制图;特别是几十张图都要改图例的小数点、色带十分耗费精力。
于是利用Arcpy进行批量制图。想实现的功能如下:
符号系统
1,修改符号
2,修改色带
3,格式化标注
输出
修改显示的图层
输出为图片
如下代码,是对’t_x5’图层制图的;只需加个循环即可对所有要素进行批量输出。
import arcpy
#导入当前工程文件
p = arcpy.mp.ArcGISProject('CURRENT')
#引用工程中的单个页面布局
m = p.listMaps('地图')[0]
#引用页面布局中的't_x5'图层
l = m.listLayers('t_x5')[0]
sym = l.symbology
#渲染器:栅格类用colorizer 矢量类用renderer
#符号类型
print(sym.colorizer.type)
#分类字段
print(sym.colorizer.classificationField)
#分为几类
print(sym.colorizer.breakCount)
#色带名称,空值,名称不会随渲染器或着色器保留
print(sym.colorizer.colorRamp.name)
#修改色带,直接中文
sym.colorizer.colorRamp =p.listColorRamps("预测")[0]
#设置符号小数点
Labels=sym.colorizer.classBreaks
for i in range(len(Labels)):
L=Labels[i].label.split(" - ")
Label=str(round(float(L[0]),3))+" - "+str(round(float(L[1]),3))
Labels[i].label=Label
#修改要素符号
l.symbology = sym
#获取当前布局
lyt = p.listLayouts("布局")[0]
#导出图片
lyt.exportToPNG("A.png", 300)
新开通了本人的公众号,欢迎关注:燕南路GISer ,专注GIS干货分享,不定期更新。
主要兴趣:GIS、时空数据挖掘、python、机器学习深度学习
CSDN的部分内容会重写再搬迁到公众号,欢迎关注!