Next Previous Up Contents
Next: aux
Up: Shading Modes
Previous: transparent

#### 8.4.5 `density`

Paints markers using a configurable colour map to indicate how many points are plotted over each other. Specifically, it colours each pixel according to how many times that pixel has has been covered by one of the markers plotted by the layer in question. To put it another way, it generates a false-colour density map with pixel granularity using a smoothing kernel of the form of the markers plotted by the layer. The upshot is that you can see the plot density of points or other markers plotted.

This is like auto mode, but with more user-configurable options.

Usage:

       shadingN=density colorN=<rrggbb>|red|blue|...
                        densemapN=<map-name>|<color>-<color>[-<color>...]
                        denseclipN=<lo>,<hi> denseflipN=true|false
                        densequantN=<number> densesubN=<lo>,<hi>
                        densefuncN=log|linear|histogram|histolog|sqrt|square|acos|cos

All the parameters listed here affect only the relevant layer, identified by the suffix `N`.

Example:

       stilts plot2plane layer1=mark in1=dr5qso.fits
                         shading1=density densemap1=viridis
                         x1=psfmag_g-psfmag_r y1=psfmag_u-psfmag_g size1=2
                         xmin=-0.5 xmax=2.5 ymin=-1 ymax=6

Associated parameters are as follows:

`colorN = <rrggbb>|red|blue|...` (Color)
  The color of plotted data, given by name or as a hexadecimal RGB value.

  The standard plotting colour names are `red`, `blue`, `green`, `grey`, `magenta`, `cyan`, `orange`, `pink`, `yellow`, `black`, `light_grey`, `white`. However, many other common colour names (too many to list here) are also understood. The list currently contains those colour names understood by most web browsers, from `AliceBlue` to `YellowGreen`, listed e.g. in the Extended color keywords section of the CSS3 standard.

  Alternatively, a six-digit hexadecimal number RRGGBB may be supplied, optionally prefixed by "`#`" or "`0x`", giving red, green and blue intensities, e.g. "`ff00ff`", "`#ff00ff`" or "`0xff00ff`" for magenta.

  [Default: `red`]

`denseclipN = <lo>,<hi>` (Subrange)
  Defines a subrange of the colour ramp to be used for Density shading. The value is specified as a (low,high) comma-separated pair of two numbers between 0 and 1.

  If the full range `0,1` is used, the whole range of colours specified by the selected shader will be used. But if for instance a value of `0,0.5` is given, only those colours at the left hand end of the ramp will be seen.

  If the null (default) value is chosen, a default clip will be used. This generally covers most or all of the range 0-1 but for colour maps which fade to white, a small proportion of the lower end may be excluded, to ensure that all the colours are visually distinguishable from a white background. This default is usually a good idea if the colour map is being used with something like a scatter plot, where markers are plotted against a white background. However, for something like a density map when the whole plotting area is tiled with colours from the map, it may be better to supply the whole range `0,1` explicitly.

`denseflipN = true|false` (Boolean)
  If true, the colour map on the Density axis will be reversed.

  [Default: `false`]

`densefuncN = log|linear|histogram|histolog|sqrt|square|acos|cos` (Scaling)
  Defines the way that values in the Density range are mapped to the selected colour ramp.

  The available options are:

  - `log`: Logarithmic scaling
  - `linear`: Linear scaling
  - `histogram`: Scaling follows data distribution, with linear axis
  - `histolog`: Scaling follows data distribution, with logarithmic axis
  - `sqrt`: Square root scaling
  - `square`: Square scaling
  - `acos`: Arccos Scaling
  - `cos`: Cos Scaling

  For all these options, the full range of data values is used, and displayed on the colour bar if applicable (though it can be restricted using the `densesub` option) The `Linear`, `Log`, `Square` and `Sqrt` options just apply the named function to the full data range. The histogram options on the other hand use a scaling function that corresponds to the actual distribution of the data, so that there are about the same number of points (or pixels, or whatever is being scaled) of each colour. The histogram options are somewhat more expensive, but can be a good choice if you are exploring data whose distribution is unknown or not well-behaved over its min-max range. The `Histogram` and `HistoLog` options both assign the colours in the same way, but they display the colour ramp with linear or logarithmic annotation respectively; the `HistoLog` option also ignores non-positive values.

  [Default: `log`]

`densemapN = <map-name>|<color>-<color>[-<color>...]` (Shader)
  Color map used for Density axis shading.

  A mixed bag of colour ramps are available as listed in Section 8.7: `blacker`, `whiter`, `inferno`, `magma`, `plasma`, `viridis`, `cividis`, `cubehelix`, `sron`, `rainbow`, `rainbow2`, `rainbow3`, `pastel`, `cosmic`, `ember`, `gothic`, `rainforest`, `voltage`, `bubblegum`, `gem`, `chroma`, `sunset`, `neon`, `tropical`, `accent`, `gnuplot`, `gnuplot2`, `specxby`, `set1`, `paired`, `hotcold`, `guppy`, `iceburn`, `redshift`, `pride`, `rdbu`, `piyg`, `brbg`, `cyan-magenta`, `red-blue`, `brg`, `heat`, `cold`, `light`, `greyscale`, `colour`, `standard`, `bugn`, `bupu`, `orrd`, `pubu`, `purd`, `painbow`, `huecl`, `infinity`, `hue`, `intensity`, `rgb_red`, `rgb_green`, `rgb_blue`, `hsv_h`, `hsv_s`, `hsv_v`, `yuv_y`, `yuv_u`, `yuv_v`, `scale_hsv_s`, `scale_hsv_v`, `scale_yuv_y`. Note: many of these, including rainbow-like ones, are frowned upon by the visualisation community.

  You can also construct your own custom colour map by giving a sequence of colour names separated by minus sign ("`-`") characters. In this case the ramp is a linear interpolation between each pair of colours named, using the same syntax as when specifying a colour value. So for instance "`yellow-hotpink-#0000ff`" would shade from yellow via hot pink to blue.

  [Default: `blacker`]

`densequantN = <number>` (Double)
  Allows the colour map used for the Density axis to be quantised. If an integer value N is chosen then the colour map will be viewed as N discrete evenly-spaced levels, so that only N different colours will appear in the plot. This can be used to generate a contour-like effect, and may make it easier to trace the boundaries of regions of interest by eye.

  If left blank, the colour map is nominally continuous (though in practice it may be quantised to a medium-sized number like 256).

`densesubN = <lo>,<hi>` (Subrange)
  Defines a normalised adjustment to the data range of the Density axis. The value may be specified as a comma-separated pair of two numbers, giving the lower and upper bounds of the range of of interest respectively. This sub-range is applied to the data range that would otherwise be used, either automatically calculated or explicitly supplied; zero corresponds to the lower bound and one to the upper.

  The default value "`0,1`" therefore has no effect. The range could be restricted to its lower half with the value `0,0.5`.

  [Default: `0,1`]

Next Previous Up Contents
Next: aux
Up: Shading Modes
Previous: transparent

STILTS - Starlink Tables Infrastructure Library Tool Set
Starlink User Note256
STILTS web page: http://www.starlink.ac.uk/stilts/
Author email: m.b.taylor@bristol.ac.uk
Mailing list: topcat-user@jiscmail.ac.uk