6

How do I get a color ramp in ArcGIS to show from -X to 0 to X, as Red to White to Green?

Whenever I try, ArcGIS scales the colors from min to max, without regard to 0. White ends up representing a positive or negative value.

I want the full red to represent the negative of the full green even if I don't have symmetric values in my data! This is important if I do not wish to lie about the data. If I show full green for -5000 but full red for +25000 the scales are misleading and intermediate values cannot be accurately interpreted.

4
  • My data are not (as I understand) Raster. I have a shapefile of US counties each with Values ranging from -260,000 to +970,000. I am using "Layers/Properties/Symbology/Quantities/Graduated Colors" to try to color the counties. I am trying to use a color ramp to show -1,000,000 = Full Red, 0 = White, and 1,000,000 = Full Green. No matter what I try, I get bins with e.g. -280,000 to -220,000 full red; +350,000 to 390,000 white; and 933,000 to 975,000 full green. Creating ramps is easy. Using them correctly is a mystery to me. Jul 29, 2014 at 16:23
  • After discussions with Michael Miles-Stimson {see below}, it appears the best option is to separately map the positive and negative values. The hitch is that if I scale them equally, my positive values go from 0 to 30 while my negative values go from -8 to 0. The only solution I see is creating an 8 scale negative ramp whose "step size" equals the first 8 steps of the positive values. So Positive goes from white to green, and negative goes from pink to white, with algebra (255/30=8.5; 255-8*8.5=187) to figure out the starting color. Jul 30, 2014 at 0:14
  • May be this is helpful. Advanced labeling for the stretch renderer --- blogs.esri.com/esri/arcgis/2011/04/13/…
    – Niranjan
    Nov 8, 2016 at 5:55
  • @Niranjan's link now lives (at least at the moment) in esri.com/arcgis-blog/products/arcgis-desktop/imagery/…
    – fatih_dur
    Jul 16, 2018 at 0:28

2 Answers 2

3

I think the only way to do this easily is using a classified renderer and a custom colour ramp as PolyGeo said. This would be limited to 32 values as that's the maximum classes you can have. Use a red to green colour ramp and then double click on the patch for 0 and change it to white.

If this solution is not working well for you try extracting to 3 rasters using Extract by Attributes:

Less than 0
Equal to 0
More than 0

Display your data with a stretched renderer: less than with a red to white colour ramp, more than 0 with white to green and then Equal to 0 as white. If you are using min-max stretch you can edit the values to make them symmetric if that is required - the values need not exist if you are entering them manually.

8
  • My data are not (as I understand) Raster. I have a shapefile of US counties each with Values ranging from -260,000 to +970,000. I am using "Layers/Properties/Symbology/Quantities/Graduated Colors" to try to color the counties. I am trying to use a color ramp to show -1,000,000 = Full Red, 0 = White, and 1,000,000 = Full Green. No matter what I try, I get bins with e.g. -280,000 to -220,000 full red; +350,000 to 390,000 white; and 933,000 to 975,000 full green. Creating ramps is easy. Using them correctly is a mystery to me. Jul 29, 2014 at 15:38
  • If it's feature data you can use a definition query and triplicate the layers. Displaying by classes (ranges) is still an option but making the colours symmetrical is not. Consider rasterizing using polygon to raster if you need the colours to be symmetrical. Jul 29, 2014 at 21:34
  • Wow - unbelievable. Nobody uses ArcGIS for analysis or serious presentation? Only for "Pretty Pictures"? Jul 29, 2014 at 21:46
  • It's not so much that Robert, your requirements are very specific; I think the developers never considered being able to specify a colour ramp at 3 values. When I had to do this previously (brown to yellow for bad, white for neutral and light green to dark green for good) it took ages classifying the data over one colour ramp using trial and error (lots of error!) and then I gave up and used the 3-layer approach and was done in minutes... two ramps and a colour = done! Jul 29, 2014 at 22:04
  • Apparently I do not have the necessary license to use "Polygon to Raster". I am continually shocked at how hard it is to show data accurately and honestly in ArcGIS. This is not a specific requirement, it is basic honest data handling. I suppose the only way ahead for me is to use separate layers for positive and negative values. I will need to create a new "negative" color ramp that starts at an intermediate value. Getting that right is a challenge software should handle. Is there a way to script this? Data mining like this is virtually impossible. Jul 29, 2014 at 23:18
1

The process for creating a Multipart color ramp is described in an Esri blog called Create a custom color ramp:

Did you ever think that the color ramps available in ArcMap were limited? Well, you can create your own color ramp! This blog gives instruction on how to create one [including Multipart] using ArcGIS 10.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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