VISUALISE Day AS x, Month AS y, Temp AS colour FROM ggsql:airquality
DRAW tile Tile
Layers are declared with the
DRAWclause. Read the documentation for this clause for a thorough description of how to use it.
Tiles can be used to draw rectangles in heatmaps or indicate ranges.
Aesthetics
The following aesthetics are recognised by the tile layer.
Required
- Pick two of the following for the primary axis:
- Center (e.g.
x) width- Start position (e.g.
xmin). Unavailable when the center is discrete. - End position (e.g.
xmax). Unavailable when the center is discrete.
- Center (e.g.
Alternatively, use only the center, which will set width to 1 by default.
- Pick two of the following for the secondary axis:
- Center (e.g.
y) height: The size of the rectangle in the vertical dimension.- Start position (e.g.
ymin). Unavailable when the center is discrete. - End position (e.g.
ymax) Unavailable when the center is discrete.
- Center (e.g.
Alternatively, use only the center, which will set height to 1 by default.
Optional
stroke: The colour of the contour lines.fill: The colour of the inner area.colour: Shorthand for settingstrokeandfillsimultaneously.opacity: The opacity of colours.linewidth: The width of the contour lines.linetype: The dash pattern of the contour line.
Settings
position: Position adjustment. One of'identity'(default),'stack','dodge', or'jitter'aggregateAggregation functions to apply per group:nullapply no group aggregation (default).- A single string or an array of strings. See an overview of aggregation function in the
DRAWdocumentation and more information in the Data transformation section below.
Data transformation.
When the primary aesthetics are continuous, primary data is reparameterised to {start, end}, e.g. xmin and xmax. When the secondary aesthetics are continuous, secondary data is reparameterised to {start, end}, e.g. ymin and ymax.
This layer also supports aggregation through the aggregate setting. Aggregation groups are defined by PARTITION BY and all discrete mappings. Within each group, every numeric mapping is replaced in place by its aggregated value. Use a default like 'mean' or target individual aesthetics with '<aes>:<func>'. See the DRAW documentation for the full setting shape. The position parameterisation runs after aggregation, so a heatmap from raw rows is just one aggregate => '<func>' setting away.
Orientation
The tile layer has no orientation. The axes are treated symmetrically.
Examples
Just using x and y. Note that width and height are set to 1.
Customising width and height with either the MAPPING or SETTING clauses.
VISUALISE Day AS x, Month AS y, Temp AS colour FROM ggsql:airquality
DRAW tile
MAPPING 0.5 AS width
SETTING height => 0.8If x is continuous, then width can be variable. Likewise for y and height.
SELECT
*,
CAST(Temp AS REAL) / (SELECT MAX(Temp) FROM ggsql:airquality) AS norm_temp
FROM ggsql:airquality
VISUALISE Day AS x, Month AS y, Temp AS colour
DRAW tile
MAPPING norm_temp AS width, norm_temp AS heightUsing top, right, bottom, left parameterisation instead.
SELECT
MIN(Date) AS start,
MAX(Date) AS end,
MIN(Temp) AS min,
MAX(Temp) AS max
FROM ggsql:airquality
GROUP BY Week
VISUALISE start AS xmin, end AS xmax, min AS ymin, max AS ymax
DRAW tileBuilding a heatmap from raw rows by aggregating per cell.
VISUALISE FROM ggsql:penguins
DRAW tile
MAPPING species AS x, sex AS y, body_mass AS fill
SETTING aggregate => 'mean', opacity => 1Using a tile as an annotation. Note we’re using the PLACE clause here instead of DRAW because we’re not mapping from data.
VISUALISE FROM ggsql:airquality
PLACE tile
SETTING
xmin => '1973-06-01',
xmax => '1973-06-30',
ymin => 50,
ymax => 100,
colour => 'dodgerblue'
DRAW line
MAPPING Date AS x, Temp AS y