NCL Home> Application examples> Special plots || Data files for some examples

Example pages containing: tips | resources | functions/procedures

A Hue/Saturation (intensity) plot (or Evans plot for short)

A Hue/Saturation(intensity) plot (or Evans plot for short) is a way to visualize spatially, two variables of interest, one of which provides some measure of "importance". It is also able to visualize, in a natural way, a cyclic variable (such as time of day, time of year, etc). It does this by assigning the hue of a color to one variable (which may be cyclic) and the saturation of color to the other variable. The variable associated with saturation indicates "importance" since low values of this variable fade into grey regardless of the value of the variable associated with the hue.

The template and examples for this series of plots were written by Dr. Jason Evans, an ARC Australian Research Fellow at the Climate Change Research Center, University of New South Wales, Sydney, Australia.

Jason has created a template that makes plotting Evans plots easy. In order to use the template you need to download and load the evans_plot.ncl script, and the gcm_co2_pre.nc, ndvi_time.nc and/or pr_mme_change_sresa2.nc files.

The Evans plot function is called using:

evans_plot_map(
               wks:graphic,              ; pre-created workstation object
               hue_data[*][*]:numeric,   ; 2D color data
               sat_data[*][*]:numeric,   ; 2D saturation data
               resources:logical)        ; optional resources

Two other functions can be called to plot a label bar or color wheel on their own. This is useful when paneling evans plots.

add_ep_label_bar_ndc(
                     wks:graphic,        ; pre-created workstation object
                     resources:logical   ; optional resources
                    ) 

add_ep_color_wheel_bar_ndc(
                           wks:graphic,       ; pre-created workstation object
                           resources:logical  ; optional resources
                         )
There are several resources to modify an Evans plot, all of which are passed to the evans_plot function as attributes of the resources logical variable (resources which only apply to Evans plots begin with ep). Below, the type of the attribute is given in { } while the default value is given in [ ]:

  • epCyclic {logical} ; is the hue variable cyclic? [True]
  • epHueLabel {string} ; to label the hues [hue_data@units]
  • epSatLabel {string} ; to label the saturations [sat_data@units]
  • epExplicitSatLevels {float[*]} ; user set saturation levels
  • epMaxSatLevel {float} ; max saturation level
  • epMinSatLevel {float} ; min saturation level
  • epSatLevelSpacing {float} ; saturation level spacing
  • epExplicitHueLevels {float[*]} ; user set hue levels
  • epMaxHueLevel {float} ; max hue level
  • epMinHueLevel {float} ; min hue level
  • epHueLevelSpacing {float} ; hue level spacing
  • epMinIntensity {float} ; minimum intensity to use (0-1) [0.8]
  • epColorWheelScale {float} ; change the size of the color wheel by multiplying by this scale factor [1.]
  • epColorWheelCenterX {float} ; center X of color wheel in ndc [0.85]
  • epMinSat {float} : minimum saturation to use (0-1) [0.]
  • epNumMaxSat {integer} : number of saturation levels to be fully saturated and distinguished by changes in intensity [1 if <6 sat levels, 4 otherwise]
  • epReverseSatColors {logical} : reverse the order of the saturations [False] causes grey to be the largest values
  • epColorBarOn {logical} ; Display the color bar? [true]
  • epColorWheelScale {float} ; change the size of the color wheel by multiplying by this scale factor [1.]
  • epColorWheelCenterX {float} ; center X of color wheel in ndc [0.85]
  • epColorWheelCenterY {float} ; center Y of color wheel in ndc [0.85]
  • epColorWheelPerimOn {logical} ; draw a box around the color wheel? [False]
  • epHueOffset {float} ; make the first hue this many degrees around the color wheel from red (0-360) [0.]
  • epHueFontSize {float} : Font size for the hue numbers. Is also scaled by epColorWheelScale [0.018]
  • epSatFontSize {float} : Font size for the sat numbers. Is also scaled by epColorWheelScale [0.015]
evans_1.ncl: Demonstrates a default Evans plot of the maximum ndvi (hue) and timing (sat).

The hue tells us what month the maximum NDVI (a satellite-based measure of vegetation greeness) occurs and the saturation tells us just how green the vegetation gets (i.e. grey areas indicate arid (desert) regions).

This default case picks "nice" hues and saturations for you. In this case it plots the data two months at a time; i.e red is jan/feb, yellow is mar/apr, etc.

evans_2.ncl: Demonstrates an Evans plot of the change in precipitation by amount (hue) and percent of present day (sat). The special resource "epCyclic" is set to False to indicate the hue variable is not cyclic.

The data are taken from the predictions of 34 realizations (by 16 GCMs) of the future precipitation under the SRESA2 scenario of the IPCC report.

evans_3.ncl: Demonstrates an Evans plot of the maximum ndvi (hue) and timing (sat).

The color wheel is rotated, scaled, and moved using the special "epColorWheelXXX" resources.

evans_4.ncl: Demonstrates an Evans plot of the change in precipitation by amount (hue) and significance (sat).

The probability (significance) of the change is calculated as a t-test between the precipitation now and the precipitation simulated in mid 21st century.

The second plot overlays the 0.9, 0.95 and 0.99 significance levels.

The third plot is a standard plot for change in precip showing signficance levels. Note that your eye is drawn to the white and red "hotspots", all of which fall outside the significant zone. The Evans plot draws your eye to the significant zones which do not correspond to these "hotspots".

evans_5.ncl: Demonstrates a panel plot of Evans plots of the change in precipitation by amount (hue) and percent (sat).

The probability (significance) of the change is calculated as a t-test between the precipitation now and the precipitation simulated in mid 21st century. The 0.9,0.95 and 0.99 significance levels are overlayed.