Select to view content in your preferred language

Too many features for colorisation

491
4
01-24-2024 05:54 AM
StephanGarnreiter
New Contributor

Hello everyone,

i want to create a map series of 100 "main regions" which are divided into several "subregions" ( up to 15 per "main region").

In the maps of the series these subregions should be displayed in different colors. But with about 450 subregions in total and using unique values in symbology it happens really often that the colors of neighbors are too similar and get hard to distinguish.

Does anyone have an idea so i don't need to fit the colors manually?

My approach was using Python to iterate through the main regions and then iterate the subregions and give every feature a color of a predefined color list (max. 15 needed). But my Python skills are too poor yet and i don't know how to code the colors in ArcGIS Pro.

Thank you and have a nice Day!

Tags (2)
0 Kudos
4 Replies
MErikReedAugusta
Occasional Contributor III

As far as the colors being too similar, you might find the Four Color Theorem useful:
https://en.wikipedia.org/wiki/Four_color_theorem

As for setting that color via Python, you'll likely need the arcpy.mp module:
https://pro.arcgis.com/en/pro-app/latest/arcpy/mapping/introduction-to-arcpy-mp.htm

There's a decent chance you may not even need to go that deep, though.  Can you share some images of what you're trying to accomplish?  Maybe do a section of the map manually and post the image here.

 

Depending on your goals for each map, what the legend needs to show, etc., you might also be able to do this with a relatively simple Arcade script in the symbology pane.

StephanGarnreiter
New Contributor

colors_example.PNGI never thaught about using Arcade and i am not familiar with it but after a little research it sounds that it could do it.
Here is an example of a map with four subregions with too similar colors. (Its not that bad, there are also cases that are harder to distinguish.) Of course, if you look closely you can distinguish all green tones but it would be clearer if the four subregions would be in red, blue, yellow and brown for example. 

So do you know how to adjust these colors for the whole map series in Arcade?

Thank you.

0 Kudos
clt_cabq
Occasional Contributor III

It sounds like you will be creating single maps for each region (your series) with sub-regions in a single map being displayed, so you'll never have multiple regions on the same page? This is a challenging situation because as you observe there are just too many different values to account for. One thing that might help is if the coloring of the sub-regions had some value to communicate. For instance, you could rank each sub-region by population within the region, then establish a color ramp/gradient to provide values from 1-15. This way you can have consistency in the meaning of the maps so that the viewer can easily compare them side by side (for instance all red shaded sub-regions are higher population while the light blue ones are lower populations). I tend to like a 3 color ramp for this kind of use as I think the human eye can distinguish a few different shades of the same color more easily than a lot and it helps to separate the extremes from the middle values.  In the interest of simplicity, a simple boundary with a label keyed to a list of sub-region names might be the best option as well - sometimes simple is best.

MErikReedAugusta
Occasional Contributor III

Keying off @clt_cabq's suggestion reminds me of the overlapping, interconnected symbology systems I often use in my day-to-day.

Overlapping/Multi-part Systems:

When I'm interacting with our Stormwater Assets at work, I generally want to know their Type (Physical or Virtual, for example) and their Status (Topologically incomplete, Pending Deletion, Active, etc).

When you combine all the possible cases (most typically: 3 Types and 6 Statuses), my point-class Structures often require about 18 different symbols.  Only... I don't actually need 18 symbols.  I need 3 sets of 6 symbols (or 6 sets of 3): The shape of my symbol tells me the type, while the color tells me the Status.

You're dealing with Polygons, rather than Points, so the technique would be a little different.  Instead of shape, you could do some kind of texture, like a cross-hatch.

Merge Rules

Alternately, when I look at your example data, it looks like the subregions are roughly contiguous, relative to themselves & each other.  The difficult part, here, is really just the border between subregions, shown with the red line below:

MErikReedAugusta_0-1706215678671.png

If you have some way of clearly symbolizing that border line, that'll make even pretty similar colors suddenly pop as distinct.

There are several ways to do this with varying levels of results.  The cleanest would likely involve a separate vector program like Illustrator or Inkscape, which is likely not realistic for 100+ main region maps.

But you can get close to this with the Merge Rules in the symbology pane; I'd read up on those, and how they work.  Put a border that only shows on the outside of the region, and not on adjacent sub-polygons within it.

You'll likely end up with borders around each of the "islands" in your polygons (again, red lines), but not the lines that seem to be between them (yellow lines):

MErikReedAugusta_2-1706216033457.png