I suggest using arcpy.mapping.UpdateLayer()
function for that:
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd,"Layers")[0]
lyr = arcpy.mapping.ListLayers(mxd, "Counties",df)[0]
source_layer = arcpy.mapping.Layer(r"C:\GIS\Temp\_Counties.lyr")
arcpy.mapping.UpdateLayer(df, lyr, source_layer,symbology_only=False)
You won't be able to update the color for the labels text with arcpy based on the colors of the layer features; this is not exposed with the coarse-grained arcpy API.
You will need:
- Update the symbology for the layer as needed.
- Update labels properties for this layer.
- Save a layer file (.lyr file) on the disk.
- Use Python to update the symbology and the labels.
Tips: use the Label Manager for specifying the properties for the label classes; it's just a nicer interface to work with comparing to the Layer Properties dialog box.