Hue/Saturation(intensity) Plots (or Evans Plots)

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.

I have created a template that makes plotting Evans plots easy. It is written for NCL - a data analysis and plotting language created and maintained by NCAR in the USA. It is free, actively maintained and improved, and produces publication quality plots. While it can be used for any dataset it is particularly aimed at Earth system models and climate models with many specialist functions to deal with that data. The official NCL Evans plot webpage can be found here, it is based on this page.




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 in order to run these examples.

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]
  • 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 saturation/intensity changes [False]
  • epColorBarOn {logical} ; Display the color bar? [true]
  • epLabelBarXMin {float} : the left x NDC location to draw the label bar [0.15]
  • epLabelBarYMin {float} : the bottom y NDC location to draw the label bar [0.1]
  • epLabelBarWidthF {float} : the NDC width of the label bar [0.8]
  • epLabelBarHeightF {float} : NDC height of the label bar [0.05]
  • epColorWheelOn {logical} ; Display the color wheel? [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.]
  • epReverseHueColors {logical} ; reverse the order of the hues [False]
  • 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.

 



UNSW    This page is maintaind by Jason Evans | Last updated 31st January 2008