Heatmap

public struct Heatmap<ZData, XYData> : Trace, XYSubplot where ZData : Plotable, XYData : Plotable

The data that describes the heatmap value-to-color mapping is set in z.

Data in z can either be a {2D array} of values (ragged or not) or a 1D array of values. In the case where z is a {2D array}, say that z has N rows and M columns. Then, by default, the resulting heatmap will have N partitions along the y axis and M partitions along the x axis. In other words, the i-th row/ j-th column cell in z is mapped to the i-th partition of the y axis (starting from the bottom of the plot) and the j-th partition of the x-axis (starting from the left of the plot). This behavior can be flipped by using transpose. Moreover, x (y) can be provided with M or M+1 (N or N+1) elements. If M (N), then the coordinates correspond to the center of the heatmap cells and the cells have equal width. If M+1 (N+1), then the coordinates correspond to the edges of the heatmap cells. In the case where z is a 1D {array}, the x and y coordinates must be provided in x and y respectively to form data triplets.

See also

Documentation for Python, JavaScript or R
  • Corresponding Plotly trace type.

    Declaration

    Swift

    public let type: String
  • Switch indicating whether the trace supports animation of its data.

    Declaration

    Swift

    public static var animatable: Bool { get }
  • Determines whether or not this trace is visible.

    If legendonly, the trace is not drawn, but can appear as a legend item (provided that the legend itself is visible).

    Declaration

    Swift

    public var visible: Visible?
  • Sets the legend group for this trace.

    Traces part of the same legend group hide/show at the same time when toggling legend items.

    Declaration

    Swift

    public var legendGroup: String?
  • Sets the opacity of the trace.

    Declaration

    Swift

    public var opacity: Double?
  • Sets the trace name.

    The trace name appear as the legend item and on hover.

    Declaration

    Swift

    public var name: String?
  • uid

    Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.

    Declaration

    Swift

    public var uid: String?
  • ids

    Assigns id labels to each datum.

    These ids for object constancy of data points during animation. Should be an array of strings, not numbers or any other type.

    Declaration

    Swift

    public var ids: [String]?
  • Assigns extra data each datum.

    This may be useful when listening to hover, click and selection events. Note that, scatter traces also appends customdata items in the markers DOM elements

    Declaration

    Swift

    public var customData: [String]?
  • Assigns extra meta information associated with this trace that can be used in various text attributes.

    Attributes such as trace name, graph, axis and colorbar title.text, annotation text rangeselector, updatemenues and sliders label text all support meta. To access the trace meta values in an attribute in the same trace, simply use %{meta[i]} where i is the index or key of the meta item in question. To access trace meta in layout attributes, use %{data[n[.meta[i]} where i is the index or key of the meta and n is the trace index.

    Declaration

    Swift

    public var meta: Data<Anything>?
  • Determines which trace information appear on hover.

    If none or skip are set, no information is displayed upon hovering. But, if none is set, click and hover events are still fired.

    Declaration

    Swift

    public var hoverInfo: HoverInfo?
  • Undocumented

    Declaration

    Swift

    public var hoverLabel: HoverLabel?
  • Undocumented

    Declaration

    Swift

    public var stream: Stream?
  • Undocumented

    Declaration

    Swift

    public var transforms: [Transform]
  • Controls persistence of some user-driven changes to the trace: constraintrange in parcoords traces, as well as some editable: true modifications such as name and colorbar.title.

    Defaults to layout.uirevision. Note that other user-driven trace attribute changes are controlled by layout attributes: trace.visible is controlled by layout.legend.uirevision, selectedpoints is controlled by layout.selectionrevision, and colorbar.(x|y) (accessible with config: {editable: true}) is controlled by layout.editrevision. Trace changes are tracked by uid, which only falls back on trace index if no uid is provided. So if your app can add/remove traces before the end of the data array, such that the same trace has a different index, you can still preserve user-driven changes if you give each trace a uid that stays with it as it moves.

    Declaration

    Swift

    public var uiRevision: Anything?
  • z

    Sets the z data.

    Declaration

    Swift

    public var z: ZData?
  • x

    Sets the x coordinates.

    Declaration

    Swift

    public var x: XYData?
  • x0

    Alternate to x.

    Builds a linear space of x coordinates. Use with dx where x0 is the starting coordinate and dx the step.

    Declaration

    Swift

    public var x0: Anything?
  • dx

    Sets the x coordinate step.

    See x0 for more info.

    Declaration

    Swift

    public var dx: Double?
  • y

    Sets the y coordinates.

    Declaration

    Swift

    public var y: XYData?
  • y0

    Alternate to y.

    Builds a linear space of y coordinates. Use with dy where y0 is the starting coordinate and dy the step.

    Declaration

    Swift

    public var y0: Anything?
  • dy

    Sets the y coordinate step.

    See y0 for more info.

    Declaration

    Swift

    public var dy: Double?
  • Only relevant when the axis type is date.

    Sets the period positioning in milliseconds or M on the x axis. Special values in the form of M could be used to declare the number of months. In this case n must be a positive integer.

    Declaration

    Swift

    public var xPeriod: Anything?
  • Only relevant when the axis type is date.

    Sets the period positioning in milliseconds or M on the y axis. Special values in the form of M could be used to declare the number of months. In this case n must be a positive integer.

    Declaration

    Swift

    public var yPeriod: Anything?
  • Only relevant when the axis type is date.

    Sets the base for period positioning in milliseconds or date string on the x0 axis. When x0period is round number of weeks, the x0period0 by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.

    Declaration

    Swift

    public var xPeriod0: Anything?
  • Only relevant when the axis type is date.

    Sets the base for period positioning in milliseconds or date string on the y0 axis. When y0period is round number of weeks, the y0period0 by default would be on a Sunday i.e. 2000-01-02, otherwise it would be at 2000-01-01.

    Declaration

    Swift

    public var yPeriod0: Anything?
  • Only relevant when the axis type is date.

    Sets the alignment of data points on the x axis.

    Declaration

    Swift

    public var xPeriodAlignment: XPeriodAlignment?
  • Only relevant when the axis type is date.

    Sets the alignment of data points on the y axis.

    Declaration

    Swift

    public var yPeriodAlignment: YPeriodAlignment?
  • Sets the text elements associated with each z value.

    Declaration

    Swift

    public var text: Data<String>?
  • Same as text.

    Declaration

    Swift

    public var hoverText: Data<String>?
  • Transposes the z data.

    Declaration

    Swift

    public var transpose: Bool?
  • If array, the heatmap’s x coordinates are given by x (the default behavior when x is provided).

    If scaled, the heatmap’s x coordinates are given by x0 and dx (the default behavior when x is not provided).

    Declaration

    Swift

    public var xType: AxisType?
  • If array, the heatmap’s y coordinates are given by y (the default behavior when y is provided) If scaled, the heatmap’s y coordinates are given by y0 and dy (the default behavior when y is not provided)

    Declaration

    Swift

    public var yType: AxisType?
  • Picks a smoothing algorithm use to smooth z data.

    See more

    Declaration

    Swift

    public enum ZSmooth : Encodable
  • Picks a smoothing algorithm use to smooth z data.

    Declaration

    Swift

    public var zSmooth: ZSmooth?
  • Determines whether or not gaps (i.e.

    {nan} or missing values) in the z data have hover labels associated with them.

    Declaration

    Swift

    public var hoverOnGaps: Bool?
  • Determines whether or not gaps (i.e.

    {nan} or missing values) in the z data are filled in. It is defaulted to true if z is a one dimensional array and zsmooth is not false; otherwise it is defaulted to false.

    Declaration

    Swift

    public var connectGaps: Bool?
  • Sets the horizontal gap (in pixels) between bricks.

    Declaration

    Swift

    public var xGap: Double?
  • Sets the vertical gap (in pixels) between bricks.

    Declaration

    Swift

    public var yGap: Double?
  • Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python.

    See: https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format

    Declaration

    Swift

    public var zHoverFormat: String?
  • Template string used for rendering the information that appear on hover box.

    Note that this will override hoverinfo. Variables are inserted using %{variable}, for example “y: %{y}”. Numbers are formatted using d3-format’s syntax %{variable:d3-format}, for example “Price: %{y:$.2f}”. https://github.com/d3/d3-3.x-api-reference/blob/master/Formatting.md#d3_format for details on the formatting syntax. Dates are formatted using d3-time-format’s syntax %{variable|d3-time-format}, for example “Day: %{2019-01-01|%A}”. https://github.com/d3/d3-time-format#locale_format for details on the date formatting syntax. The variables available in hovertemplate are the ones emitted as event data described at this link https://plotly.com/javascript/plotlyjs-events/#event-data. Additionally, every attributes that can be specified per-point (the ones that are arrayOk: true) are available. Anything contained in tag <extra> is displayed in the secondary box, for example “{fullData.name}”. To hide the secondary box completely, use an empty tag <extra></extra>.

    Declaration

    Swift

    public var hoverTemplate: Data<String>?
  • Determines whether or not an item corresponding to this trace is shown in the legend.

    Declaration

    Swift

    public var showLegend: Bool?
  • Determines whether or not the color domain is computed with respect to the input data (here in z) or the bounds set in zmin and zmax Defaults to false when zmin and zmax are set by the user.

    Declaration

    Swift

    public var zAuto: Bool?
  • Sets the lower bound of the color domain.

    Value should have the same units as in z and if set, zmax must be set as well.

    Declaration

    Swift

    public var zMin: Double?
  • Sets the upper bound of the color domain.

    Value should have the same units as in z and if set, zmin must be set as well.

    Declaration

    Swift

    public var zMax: Double?
  • Sets the mid-point of the color domain by scaling zmin and/or zmax to be equidistant to this point.

    Value should have the same units as in z. Has no effect when zauto is false.

    Declaration

    Swift

    public var zMiddle: Double?
  • Sets the colorscale.

    The colorscale must be an array containing arrays mapping a normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, [[0, 'rgb(0,0,255)'], [1, 'rgb(255,0,0)']]. To control the bounds of the colorscale in color space, usezmin and zmax. Alternatively, colorscale may be a palette name string of the following list: Greys,YlGnBu,Greens,YlOrRd,Bluered,RdBu,Reds,Blues,Picnic,Rainbow,Portland,Jet,Hot,Blackbody,Earth,Electric,Viridis,Cividis.

    Declaration

    Swift

    public var colorScale: ColorScale?
  • Determines whether the colorscale is a default palette (autocolorscale: true) or the palette determined by colorscale.

    In case colorscale is unspecified or autocolorscale is true, the default palette will be chosen according to whether numbers in the color array are all positive, all negative or mixed.

    Declaration

    Swift

    public var autoColorScale: Bool?
  • Reverses the color mapping if true.

    If true, zmin will correspond to the last color in the array and zmax will correspond to the first color.

    Declaration

    Swift

    public var reverseScale: Bool?
  • Determines whether or not a colorbar is displayed for this trace.

    Declaration

    Swift

    public var showScale: Bool?
  • Undocumented

    Declaration

    Swift

    public var colorBar: ColorBar?
  • Sets a reference to a shared color axis.

    References to these shared color axes are coloraxis, coloraxis2, coloraxis3, etc. Settings for these shared color axes are set in the layout, under layout.coloraxis, layout.coloraxis2, etc. Note that multiple color scales can be linked to the same color axis.

    Declaration

    Swift

    public var colorAxis: ColorAxis
  • Sets the calendar system to use with x date data.

    Declaration

    Swift

    public var xCalendar: Calendar?
  • Sets the calendar system to use with y date data.

    Declaration

    Swift

    public var yCalendar: Calendar?
  • Sets a reference between this trace’s x coordinates and a 2D cartesian x axis.

    If x (the default value), the x coordinates refer to layout.xaxis. If x2, the x coordinates refer to layout.xaxis2, and so on.

    Declaration

    Swift

    public var xAxis: XAxis
  • Sets a reference between this trace’s y coordinates and a 2D cartesian y axis.

    If y (the default value), the y coordinates refer to layout.yaxis. If y2, the y coordinates refer to layout.yaxis2, and so on.

    Declaration

    Swift

    public var yAxis: YAxis
  • Creates Heatmap object from the most frequently used properties.

    Declaration

    Swift

    public init(name: String? = nil, z: ZData? = nil, x: XYData? = nil, y: XYData? = nil, text:
            Data<String>? = nil, hoverText: Data<String>? = nil, colorScale: ColorScale? = nil,
            reverseScale: Bool? = nil)

    Parameters

    name

    Sets the trace name.

    z

    Sets the z data.

    x

    Sets the x coordinates.

    y

    Sets the y coordinates.

    text

    Sets the text elements associated with each z value.

    hoverText

    Same as text.

    colorScale

    Sets the colorscale.

    reverseScale

    Reverses the color mapping if true.

  • Creates Heatmap object with specified properties.

    Declaration

    Swift

    public init(visible: Visible? = nil, legendGroup: String? = nil, opacity: Double? = nil, name:
            String? = nil, uid: String? = nil, ids: [String]? = nil, customData: [String]? = nil, meta:
            Data<Anything>? = nil, hoverInfo: HoverInfo? = nil, hoverLabel: HoverLabel? = nil, stream:
            Stream? = nil, transforms: [Transform] = [], uiRevision: Anything? = nil, z: ZData? = nil, x:
            XYData? = nil, x0: Anything? = nil, dx: Double? = nil, y: XYData? = nil, y0: Anything? = nil,
            dy: Double? = nil, xPeriod: Anything? = nil, yPeriod: Anything? = nil, xPeriod0: Anything? =
            nil, yPeriod0: Anything? = nil, xPeriodAlignment: XPeriodAlignment? = nil, yPeriodAlignment:
            YPeriodAlignment? = nil, text: Data<String>? = nil, hoverText: Data<String>? = nil, transpose:
            Bool? = nil, xType: AxisType? = nil, yType: AxisType? = nil, zSmooth: ZSmooth? = nil,
            hoverOnGaps: Bool? = nil, connectGaps: Bool? = nil, xGap: Double? = nil, yGap: Double? = nil,
            zHoverFormat: String? = nil, hoverTemplate: Data<String>? = nil, showLegend: Bool? = nil, zAuto:
            Bool? = nil, zMin: Double? = nil, zMax: Double? = nil, zMiddle: Double? = nil, colorScale:
            ColorScale? = nil, autoColorScale: Bool? = nil, reverseScale: Bool? = nil, showScale: Bool? =
            nil, colorBar: ColorBar? = nil, colorAxis: ColorAxis = .preset, xCalendar: Calendar? = nil,
            yCalendar: Calendar? = nil, xAxis: XAxis = .preset, yAxis: YAxis = .preset)

    Parameters

    visible

    Determines whether or not this trace is visible.

    legendGroup

    Sets the legend group for this trace.

    opacity

    Sets the opacity of the trace.

    name

    Sets the trace name.

    uid

    Assign an id to this trace, Use this to provide object constancy between traces during animations and transitions.

    ids

    Assigns id labels to each datum.

    customData

    Assigns extra data each datum.

    meta

    Assigns extra meta information associated with this trace that can be used in various text attributes.

    hoverInfo

    Determines which trace information appear on hover.

    hoverLabel

    stream

    transforms

    uiRevision

    Controls persistence of some user-driven changes to the trace: constraintrange in parcoords traces, as well as some editable: true modifications such as name and colorbar.title.

    z

    Sets the z data.

    x

    Sets the x coordinates.

    x0

    Alternate to x.

    dx

    Sets the x coordinate step.

    y

    Sets the y coordinates.

    y0

    Alternate to y.

    dy

    Sets the y coordinate step.

    xPeriod

    Only relevant when the axis type is date.

    yPeriod

    Only relevant when the axis type is date.

    xPeriod0

    Only relevant when the axis type is date.

    yPeriod0

    Only relevant when the axis type is date.

    xPeriodAlignment

    Only relevant when the axis type is date.

    yPeriodAlignment

    Only relevant when the axis type is date.

    text

    Sets the text elements associated with each z value.

    hoverText

    Same as text.

    transpose

    Transposes the z data.

    xType

    If array, the heatmap’s x coordinates are given by x (the default behavior when x is provided).

    yType

    If array, the heatmap’s y coordinates are given by y (the default behavior when y is provided) If scaled, the heatmap’s y coordinates are given by y0 and dy (the default behavior when y is not provided)

    zSmooth

    Picks a smoothing algorithm use to smooth z data.

    hoverOnGaps

    Determines whether or not gaps (i.e.

    connectGaps

    Determines whether or not gaps (i.e.

    xGap

    Sets the horizontal gap (in pixels) between bricks.

    yGap

    Sets the vertical gap (in pixels) between bricks.

    zHoverFormat

    Sets the hover text formatting rule using d3 formatting mini-languages which are very similar to those in Python.

    hoverTemplate

    Template string used for rendering the information that appear on hover box.

    showLegend

    Determines whether or not an item corresponding to this trace is shown in the legend.

    zAuto

    Determines whether or not the color domain is computed with respect to the input data (here in z) or the bounds set in zmin and zmax Defaults to false when zmin and zmax are set by the user.

    zMin

    Sets the lower bound of the color domain.

    zMax

    Sets the upper bound of the color domain.

    zMiddle

    Sets the mid-point of the color domain by scaling zmin and/or zmax to be equidistant to this point.

    colorScale

    Sets the colorscale.

    autoColorScale

    Determines whether the colorscale is a default palette (autocolorscale: true) or the palette determined by colorscale.

    reverseScale

    Reverses the color mapping if true.

    showScale

    Determines whether or not a colorbar is displayed for this trace.

    colorBar

    colorAxis

    Sets a reference to a shared color axis.

    xCalendar

    Sets the calendar system to use with x date data.

    yCalendar

    Sets the calendar system to use with y date data.

    xAxis

    Sets a reference between this trace’s x coordinates and a 2D cartesian x axis.

    yAxis

    Sets a reference between this trace’s y coordinates and a 2D cartesian y axis.

  • Encodes the object in a format compatible with Plotly.

    Declaration

    Swift

    public func encode(to encoder: Encoder) throws