My job requires that I produce several print maps every day, for a variety of different users. It is usually pretty straight-forward, but sometimes I have to make a map that uses rather confusing/overlapping data for people who are unfamiliar with the subject matter.

Is there a method to have the colour of a label automatically match the colour of the polygon indicated in the symbology tab? I realize I can select 'Define classes of features and label each class differently' and 'Get Symbol Classes' under the Labels tab, but I still have to manually enter the CMYK values for each symbol class, as each label is automatically set to black.

If there was a method to set the colour automatically, my job would be much less tedious.

  • What if you developed your label classes & symbology, saved them as layer files then load them as needed. Would that help? Feb 19, 2014 at 16:22
  • A small workaround would be to use the 'Graduated colors' under the Symbology tab, set the number of classes, and then use an SQL query under the 'Define classes of features and label each class differently' in the Symbology tab and set the color for the labels in each class to match the range given in the classification range. However, the dataset I am using frequently changes and it would be so helpful to just have the colour of the label match the colour of the feature.
    – Adam Thom
    Feb 19, 2014 at 21:29
  • Any luck finding an automatic solution? I need to do the same thing for a hundred points Sep 2, 2015 at 13:40
  • Unfortunately, no.
    – Adam Thom
    Sep 4, 2015 at 16:33

2 Answers 2


Probably not the answer you are looking for, and I don't know there may actually be something within ArcPy that may let you work with labeling and symbology properties like that, though I don't personally know of such. However, as far as time savers along that lines, a few things would be, if you use consistent color ramps or consistent colors in your symbology, you could actually save those colors as custom colors so when picking a color instead of typing in individual RGB or CMYK values you can just click on your color in the drop down. Also, you can do this same type thing with label styles, you could set up standard label styles (color, font, size, halo, spacing, etc... ) and save those so that instead of clicking on the label style properties for each label class and then manually setting each specific property, you just pick your custom label style. Both of these you should be able to click around their appropriate dialog boxes and find a save button, if not let me know and I'll try and describe where they are.

Also though, you make it sound like you may have a situation where you get the same kinds of datasets each day, just with that day's values, but in general they are the same schema, the same domains, the same range of possible values, etc... I have no clue if this is true, but if it is, you could also set up always go in at some point, aggregate several days worth of datasets (merge tool or something similar) to get a dataset with the same schema as the dataset you are normally mapping out but having all the possible values you may encounter in your symbol class field. Then you go in, set that up with symbol and label classes in ArcMap and save that layer file. Then each time you get newly updated data for that dataset, you just bring in that layer file you saved, go to the source tab and change the source to the new dataset (current data) of the same schema, and there you go it should work if your template layer file was prepped correctly (make sure to use some sort of show all others options just in case you missed a few possible values). I hope that makes sense, but again, if not, let me know and I'll try and clarify.

Again, sorry for not having the perfect answer, but I hope it helps at least a little.

  • You have some great ideas, but since there can be several dozen different polygons on the screen at one time, it would be nice to click on the Colour Ramp under the Symbology tab, select Pastels and somehow have the colours of the labels match the polygons.
    – Adam Thom
    Feb 13, 2014 at 18:18
  • 1
    Another thing that may help, at least a bit, is there is actually a tool in ArcGIS called "Eye Dropper" that, as far as I know, is hidden by default, but you can go into the Customize Toolbars dialog (right click toolbar area and scroll down to Customize at bottom). From there you can click Commands tab and search for Eye Dropper and then drag and drop it to an existing or new toolbar (or assign a hotkey to it using the Keyboard button). Then you can use that tool to click anywhere within the the desktop screen and it'll save that color. Again, not perfect, but may help some as well...
    – John
    Feb 13, 2014 at 19:01
  • I am a big fan of the Eye Dropper and have used it on many, many occasions, but it is probably not the best answer for this instance.
    – Adam Thom
    Feb 13, 2014 at 20:14

I had a similar situation to deal with. I googled "arcgis labels conditional colouring", and tumbled upon several interesting responses.

You perform the function in the labeling option of the polygon; changing to advanced functionality and using VB for conditionally designating, based on a value within a column of the associated table attributes.

The simplest way is to create a column that will receive the results of a query performed on the table and then using the results in your conditional formatting statements.

Once understood, very powerful and very simple.


Examples: http://www.esri.com/news/arcuser/1104/files/vbscript_label.pdf (page 4)

http://forums.arcgis.com/threads/24786-Label-Colors-depending-on-their-value (response #26)


I hope these will lead you in a direction that arrives at the destination hoped for.

  • I've actually found it much easier to define classes of features, apply an SQL query and manually set the label values than using a label expression. The box where you write the expression cannot be resized and a complicated expression can be difficult to edit.
    – Adam Thom
    Feb 19, 2014 at 21:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.