# scatterplot properties

Information noteSTABLE.   
  
This API is reliable and breaking changes are unlikely.

scatterplot()

These are the properties used by Qlik Sense scatter plot charts.

## Version history

Version history

| Version state | Details |
| --- | --- |
| Introduced | 2.2 |

## Properties

### showTitles

Type: Boolean

Show title for the visualization.

Default: true.

### showDetails

Type: Boolean

Sets if visualization details should be shown.

Default: false

### title

Type: String | qStringExpression

Visualization title shown if "showTitles": true.

### subtitle

Type: String | qStringExpression

Visualization subtitle shown if "showTitles": true.

### footnote

Type: String | qStringExpression

Visualization footnote shown if "showTitles": true.

### disableNavMenu

Type: Boolean

Disables the hover menu in the visualization.

Default: false

### showDisclaimer

Type: Boolean

Set to false to hide visualization disclaimers that appear at the bottom of the chart, such as limited data or the chart has negative values.

Default: true

### qHyperCubeDef

Type: Object

The hypercube definition used by most visualizations.

A subset of the properties available in the qHyperCubeDef is presented here. For complete documentation of all available properties, see [Engine API: HyperCubeDef](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/EngineJSONAPI/Content/models-hypercubedef.htm).

Additional properties:

#### qDimensions

Type: Array

Description: Extends NxDimension, see [Engine API: NxDimension](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/EngineJSONAPI/Content/models-nxdimension.htm).

Additional properties:

* **qDef**

  Type: Object

  Description: Extends NxInlineDimensionDef, see [Engine API: NxInlineDimensionDef](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/EngineJSONAPI/Content/models-nxinlinedimensiondef.htm).

  qDef properties

  | Name | Type | Description |
  | --- | --- | --- |
  | autoSort | Boolean | Set to automatically sort the dimension.<br><br>Default: true |
  | cId | String | ID used by the client. Must be unique within the current chart. |
  | othersLabel | StringExpressionContainer | String expression container. |

* **qAttributeDimensions**

  Type: Array

  Description: Extends NxAttrDimDef, see [Engine API: NxAttrDimDef](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/EngineJSONAPI/Content/models-nxattrdimdef.htm).

  * id

    Type: String

    One of:

    * colorByAlternative: colors the chart using different dimensions. Can be used together with color.mode="byDimension" for attribute dimensions.
    * colorByExpression: used together with color.mode="byExpression".

* **qAttributeExpressions**

  Type: Array

  Description: Extends NxAttrExprDef, see [Engine API: NxAttrExprDef](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/EngineJSONAPI/Content/models-nxattrexprdef.htm).

  * 

    **id**

    Type: String

    Description: All qAttributeExpressions IDs are specifically for use with custom tooltips.

    * customTooltipExpression: An AttributeExpression with this ID sets the extra tooltip measure.

    * customTooltipTitle: An AttributeExpression with this ID sets the tooltip title.

    * customTooltipDescription: An AttributeExpression with this ID sets the tooltip description.

    * customTooltipImages: An AttributeExpression with this ID sets the tooltip image.

#### qMeasures

Type: Array

Description: Extends NxMeasure, see [Engine API: NxMeasure](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/EngineJSONAPI/Content/models-nxmeasure.htm).

Additional properties

* **qDef**

  Type: Object

  Description: Extends NxInlineMeasureDef, see [Engine API: NxInlineMeasureDef](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/EngineJSONAPI/Content/models-nxinlinemeasuredef.htm).

  qDef Properties

  | Name | Type | Description |
  | --- | --- | --- |
  | autoSort | Boolean | Set to automatically sort the measure.<br><br>Default: true |
  | cId | String | ID used by the client. Must be unique within the current chart. |
  | numFormatFromTemplate | Boolean | When enabled, the number format to use can be selected from multiple predefined formats based on the desired type: number or date.<br><br>Default: true |
  | isCustomFormatted | Boolean | Set to true to toggle off the default client formatting. |
  | othersLabel | StringExpressionContainer | String expression container for labels. |

* **qAttributeExpressions**

  Type: Array

  Extends NxAttrExprDef, see [Engine API: NxAttrExprDef](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/EngineJSONAPI/Content/models-nxattrexprdef.htm).

  id

  Type: String

  One of:

  * colorByAlternative: colors the chart using different dimensions. Can be used together with color.mode="byDimension" for attribute dimensions.
  * colorByExpression: used together with color.mode="byExpression".

#### qLayoutExclude

Type: Object

#### customErrorMessage

Type: Object

Set to define custom error messages.

* **calcCondition**

  Type: String

  Description: Deprecated. Use qCalcCondition.qMsg instead. Set to customize the calculation condition unfilled message.

### tooltip

Type: Object

Description: Custom tooltip settings.

* auto

  Type: Boolean

  Description: Determines if the custom tooltip is displayed or not.

  If set to false, custom tooltip is displayed. Default: true

* data

* hideBasic

  Type: Boolean

  Description: Hides all the basic tooltip content except the dimension and the custom tooltip content.

  If set to true, basic tooltip content is hidden. Default: false

* chart

  Type: Object

  Description: The chart objects are used to define the chart that is displayed by the custom tooltip.

  * object

    Type: MasterVisualizationChartObject

    Description: Contains the master visualizations available to add to the tooltip.

    * refId

      Type: String

      Description: Input field containing the qExtendsId of the visualization, where qExtendsId is the unique id of the master visualization.

  * style

    Type: MasterVisualizationChartStyle

    Description: Determines the styling available for the chart in the tooltip.

    * size

      Type: String

      Description: Size of the chart when it is displayed. One of:

      * small
      * medium
      * large

      The small, medium, and large settings yield fixed pixel sizes for the chart container. The chart is scaled to fit the tooltip.

* imageComponents

  Type: Array

  Description: The imageComponents objects are used to define the images displayed by the custom tooltip.

  * type

    Type: String

    Description: Type of the image for the current selection. One of:

    * media library
    * url

  * size

    Type: String

    Description: Size of the image when it is displayed. One of:

    * small
    * medium
    * large
    * original

    The small, medium, and large settings yield fixed pixel sizes for the image container. Setting the value to original maintains the size unless it exceeds the limit of the tooltip max size. The image is scaled to fit the tooltip if it exceeds the limit.

  * ref

    Type: String, StringExpression, or MediaLibraryRef

    Description: The reference value of the image.

    * MediaLibraryRef

      Type: Object

      Description: Media Library Reference structure.

      * qStaticContentUrlDef

        Object

        Description: Media Library structure that is evaluated by the engine.

        * qUrl

          Type: String

          Description: Media library path for the image in the app. Used only when type is set to media library.

### refLine

Type: Object

Reference line settings for scatter charts. Can be set on X-axis and Y-axis separately.

#### refLinesX

Type: Array

refLinesX properties

| Name | Type | Description |
| --- | --- | --- |
| show | Boolean | Set to true to display this reference line.<br><br>Default: true |
| label | String | Reference line label. |
| color | Integer | Deprecated. Use paletteColor instead.<br><br>Color.<br><br>Default: 3 |
| paletteColor | Object | Color information structure. Holds the actual color and index in palette.<br><br><ul> <li><strong>color</strong>: <p><span>Type: String</span></p>Description: Color as hex string (mandatory if index: -1)</li> <li><strong>index</strong>: <p><span>Type: Integer</span></p>Description: Index in palette. If a custom color, not in the palette, is being used, set index to <span>-1</span>.</li> </ul> |
| refLineExpr | String | Reference line expression settings.<br><br><ul> <li><strong>label</strong>: <p><span>Type: StringExpressionContainer</span></p>Expression for the displayed value.</li> <li><strong>value</strong>: <p><span>Type: ValueExpressionContainer</span></p>Expression for the value used in the visualization.</li> <li> <p><strong>cId</strong>: </p><p><span>Type: String</span></p>ID used by the client. Needs to be unique within the array of reference lines.<p></p> </li> </ul> |

#### refLinesY

Type: Array

refLinesY properties

| Name | Type | Description |
| --- | --- | --- |
| show | Boolean | Set to true to display this reference line.<br><br>Default: true |
| label | String | Reference line label. |
| color | Integer | Deprecated. Use paletteColor instead.<br><br>Color.<br><br>Default: 3 |
| paletteColor | Object | Color information structure. Holds the actual color and index in palette.<br><br><ul> <li><strong>color</strong>: <p><span>Type: String</span></p>Description: Color as hex string (mandatory if index: -1)</li> <li><strong>index</strong>: <p><span>Type: Integer</span></p>Description: Index in palette. If a custom color, not in the palette, is being used, set index to <span>-1</span>.</li> </ul> |
| refLineExpr | String | Reference line expression settings.<br><br><ul> <li><strong>label</strong>: <p><span>Type: StringExpressionContainer</span></p>Expression for the displayed value.</li> <li><strong>value</strong>: <p><span>Type: ValueExpressionContainer</span></p>Expression for the value used in the visualization.</li> <li> <p><strong>cId</strong>: </p><p><span>Type: String</span></p>ID used by the client. Needs to be unique within the array of reference lines.<p></p> </li> </ul> |

### dataPoint

Type: Object

Data point settings for scatter plots.

dataPoint object properties

| Name | Type | Description |
| --- | --- | --- |
| bubbleSizes | Integer | Bubble size.<br><br>Min: 1, Max: 20, Default: 5 |
| rangeBubbleSizes | Array | Bubble sizes. Represented as an array of two integers where the first index is the from-size, and the second is the to-size. From-size should always be smaller than the to-size. |

### labels

Type: Object

Label settings.

Additional properties:

#### mode

Type: Integer

Set to display labels. Can be one of:

* 0: show labels
* 1: auto
* 2: hide labels

Default: 1

### gridLine

Type: Object

Grid line settings.

gridLine properties

| Name | Type | Description |
| --- | --- | --- |
| auto | Boolean | Set to use automatic grid line spacing.<br><br>Default: true |
| spacing | Integer | Grid line spacing. Used only when "auto": false. One of:<br><br><ul> <li><span>0</span>: no lines</li> <li><span>1</span>: wide</li> <li><span>2</span>: medium</li> <li><span>3</span>: narrow</li> </ul><br><br>Default: 2 |

### compressionResolution

Type: Integer

Scatter plot resolution settings for compressed data.

Default: 5

### color

Type: Object

Most color options for visualizations are set in the color object in the options. You activate custom coloring by setting "auto": false which turns off auto-coloring.

If "auto": true, no other properties need to be defined in the color object.

The following parameters can be set in the color object:

#### auto

Type: Boolean

Set to use automatic coloring.

When "auto": true, color settings are based on the visualization used and the number of dimensions and measures, that is, the settings are not fixed, but are dependent on the data input.

Default: true

#### mode

Type: String

Sets the coloring mode for the visualization when auto-coloring has been switched off ("auto": false). Can be one of:

* primary: a single color (by default blue) is used for all items in the chart. In visualizations that do not benefit from multiple colors (bar charts with one dimension and scatter plots), single color is the default setting.

* byDimension: coloring is based upon the amount of dimension values. Details are set in the byDimensionDef property.

  Information notebyDimension can only be used in conjunction with an attribute dimension on the dimension to color by, as shown in the example below.

  ```
  {
    "qDef": {
      "qFieldDefs": [
        "NetScoreName"
      ]
    },
    "qAttributeDimensions": [
      {
        "qDef": "NetScoreName",
        "id": "colorByAlternative",
        "label": "Year"
      }
    ]
  }
  ```

* byExpression: coloring is based on an expression, which in most cases is a color code. Details are set in the expressionIsColor, expressionLabel and colorExpression properties.

* byMeasure: coloring is based on the measure value. Details are set in the byMeasureDef property.

* byMultiple: can be used when more than one measure is used. By default, 12 colors are used for the dimensions. The colors are reused when there are more than 12 dimension values.

#### useBaseColors

Type: String

Only applicable when "mode": "primary" or "mode": "byMultiple" has been defined.

Use colors encoded in master items. Should only be defined when a master dimension or master measure used in the visualization has a color assigned to it.

One of:

* off
* measure: use colors encoded in master measure.
* dimension: use colors encoded in master dimension.

Default: off

#### singleColor

Type: Integer

Deprecated. Use paletteColor instead.

Set to use single color.

Default: 3

#### paletteColor

Type: Object

The paletteColor object is used to define the color when you color by single color ("mode": "primary"). It has the following properties:

paletteColor properties

| Name | Type | Description |
| --- | --- | --- |
| index | Integer | Index in the palette.<br><br>The default Qlik Sense color palette:<br><br><ul> <li><span>-1</span>: set to use custom color that is not in the palette.</li> <li><span>0</span>: No color</li> <li><span>1</span>: White, HEX: <span>#ffffff</span></li> <li><span>2</span>: Light green, HEX: <span>#46c646</span></li> <li><span>3</span>: Green, HEX: <span>#276e27</span></li> <li><span>4</span>: Light blue, HEX: <span>#b6d7ea</span></li> <li><span>5</span>: Blue, HEX: <span>#7db8da</span></li> <li><span>6</span>: Dark blue, HEX: <span>#4477aa</span></li> <li><span>7</span>: Purple, HEX: <span>#8e477d</span></li> <li><span>8</span>: Yellow, HEX: <span>#ffcf02</span></li> <li><span>9</span>: Orange, HEX: <span>#f8981d</span></li> <li><span>10</span>: Red, HEX: <span>#f93f17</span></li> <li><span>11</span>: Brown, HEX: <span>#633d0c</span></li> <li><span>12</span>: Light gray, HEX: <span>#b0afae</span></li> <li><span>13</span>: Gray, HEX: <span>#7b7a78</span></li> <li><span>14</span>: Dark gray, HEX: <span>#545352</span></li> <li><span>15</span>: Black, HEX: <span>#000000</span></li> </ul><br><br>Default: 6 |
| color | String | Color as HEX string.<br><br>Mandatory if "index": "-1". |

#### persistent

Type: Boolean

Set to true to use persistent colors on data points between selection states. Only applicable when using one dimension and when "mode": "byDimension" or when "mode": "byMultiple".

Default: false

#### expressionIsColor

Type: Boolean

Set to true to define whether the result of the expression is a valid CSS3 color.

Only applicable when "mode": "byExpression".

Default: true

#### expressionLabel

Type: String

Defines the label on tool tips when using a coloring expression. Only applicable when "mode": "byExpression" and only used if "expressionIsColor": false

#### colorExpression

Type: Value Expression Container

Sets the color expression to be used when "mode": "byExpression" is defined.

Supported formats:

* RGB
* ARGB
* HSL

Example:

```
"colorExpression": "=if(sum(Sales)<avg(Total aggr(sum(Sales),Product)),rgb(255,0,0),RGB(0,255,0))"
```

#### measureScheme

Type: String

Color scheme when "mode": "byMeasure". Can be one of:

* sg: (sequential gradient) the transition between the different color groups is made using different shades of colors. High measure values have darker hues
* sc: (sequential classes) the transition between the different color groups is made using distinctly different colors.
* dg: (diverging gradient) used when working with data that is ordered from low to high, for instance, to show the relationship between different areas on a map. Low and high values have dark colors, mid-range colors are light.
* dc: (diverging classes) can be seen as two sequential classes combined, with the mid-range shared. The two extremes, high and low, are emphasized with dark colors with contrasting hues, and the mid-range critical values are emphasized with light colors.

Default: sg

#### useMeasureGradient

Type: Boolean

Set to true if you want to apply the colors defined for library measures when used. Only applicable if "mode": "byMeasure".

Default: true

#### dimensionScheme

Type: String

Color scheme when "mode": "byDimension" or "mode": "byMultiple". Can be one of:

* 12: 12 colors where all can be distinguished by people with vision deficiency.
* 100: 100 colors where not all can be distinguished by people with vision deficiency

Default: 12

#### useDimColVal

Type: Boolean

Set to true if you want to apply the colors defined for library dimensions when used. Only applicable if "mode": "byDimension".

Default: true

#### reverseScheme

Type: Boolean

Set to true to reverse the color scheme.

#### autoMinMax

Type: Boolean

Set to false to define custom color range. Custom color range is only applicable when coloring is by measure ("mode": "byMeasure") or by expression ("mode": "byExpression").

When coloring is by expression, "expressionIsColor": "false" must be set for custom color range to work.

Default: true

#### measureMin

Type: Value Expression Container

Set the min value for the color range.

Only applicable if autoMinMax: false. Can be used in conjunction with measureMax or by its own.

#### measureMax

Type: Value Expression Container

Set the max value for the color range.

Only applicable if autoMinMax: false. Can be used in conjunction with measureMin or by its own.

### legend

Type: Object

Legend settings.

Type: Object

Legend settings.

legend properties

| Name | Type | Description |
| --- | --- | --- |
| show | Boolean | Set to show the legend.<br><br>Default: true |
| dock | String | Sets the legend position. Can be one of:<br><br><ul> <li><span>auto</span> </li> <li><span>right</span> </li> <li><span>left</span> </li> <li><span>bottom</span> </li> <li><span>top</span> </li> </ul><br><br>Default: auto |
| showTitle | Boolean | Show the legend title.<br><br>Default: true |

### xAxis

Type: Object

X axis settings.

xAxis properties

| Name | Type | Description |
| --- | --- | --- |
| show | String | Set to display the labels and titles. Can be one of:<br><br><ul> <li><span>all</span> </li> <li><span>labels</span> </li> <li><span>title</span> </li> <li><span>none</span> </li> </ul><br><br>Default: all |
| dock | String | Sets the axis docking position. Can be one of:<br><br><ul> <li><span>near</span> </li> <li><span>far</span> </li> </ul><br><br>Default: near |
| spacing | Number | Set the axis scale:<br><br>Default: 1 |
| autoMinMax | Boolean | Set to use automatic min/max for measure color.<br><br>Default: true |
| minMax | String | Set custom max/min. Can be one of:<br><br><ul> <li><span>min</span> </li> <li><span>max</span> </li> <li><span>minMax</span> </li> </ul><br><br>Default: min |
| min | ValueExpressionContainer | Set the min value for the range. |
| max | ValueExpressionContainer | Set the max value for the range. |

### yAxis

Type: Object

Y axis settings.

yAxis properties

| Name | Type | Description |
| --- | --- | --- |
| show | String | Set to display the labels and titles. Can be one of:<br><br><ul> <li><span>all</span> </li> <li><span>labels</span> </li> <li><span>title</span> </li> <li><span>none</span> </li> </ul><br><br>Default: all |
| dock | String | Sets the axis docking position. Can be one of:<br><br><ul> <li><span>near</span> </li> <li><span>far</span> </li> </ul><br><br>Default: near |
| spacing | Number | Set the axis scale:<br><br>Default: 1 |
| autoMinMax | Boolean | Set to use automatic min/max for measure color.<br><br>Default: true |
| minMax | String | Set custom max/min. Can be one of:<br><br><ul> <li><span>min</span> </li> <li><span>max</span> </li> <li><span>minMax</span> </li> </ul><br><br>Default: min |
| min | ValueExpressionContainer | Set the min value for the range. |
| max | ValueExpressionContainer | Set the max value for the range. |

### navigation

Type: Boolean

Set to true to display navigation UI.

## Example using Visualization API

Tip noteFor more examples of how to create scatter plots on the fly, see [Mashups: Creating scatter plots](https://help.qlik.com/en-US/sense-developer/May2025/Subsystems/Mashups/Content/Sense_Mashups/Create/Visualizations/Scatterplot/create-scatterplot.htm).

In this example we create a basic scatter plot, containing one dimension and two measures. The measures have basic number formatting applied and a title is added to the scatter plot.

```
app.visualization.create(
  'scatterplot',
  [
    {
      "qDef": {
        "qFieldDefs": [
          "=[Date.autoCalendar.YearQuarter]"
        ],
        "qFieldLabels": [
          "Year and Qtr"
        ]
      },
      "qNullSuppression": true
    },
    {
      "qDef": {
        "qLabel": "FIR%",
        "qDef": "Avg(FwHit)",
        "qNumFormat": {
          "qType": "F",
          "qnDec": 2,
          "qUseThou": 0,
          "qFmt": "0.0%",
          "qDec": ".",
          "qThou": ","
        }
      }
    },
    {
      "qDef": {
        "qLabel": "GIR%",
        "qDef": "Avg(GIR)",
        "qNumFormat": {
          "qType": "F",
          "qnDec": 2,
          "qUseThou": 0,
          "qFmt": "0.0%",
          "qDec": ".",
          "qThou": ","
        }
      }
    }    
  ],
  {
    "showTitles": true,
    "title": "Fairways hit vs. Greens hit relation"
  }
).then(function(vis){
  vis.show("QV01");
});
```