---
title: Scatter visualization
description: The Scatter view uses a scatter plot to display time series data.
url: https://docs.influxdata.com/influxdb/v2/visualize-data/visualization-types/scatter/
estimated_tokens: 1609
product: InfluxDB OSS v2
version: v2
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb/v2/visualize-data/visualization-types/scatter/
date: '2025-04-02T15:54:32-06:00'
lastmod: '2025-04-02T15:54:32-06:00'
---

This page documents an earlier version of InfluxDB OSS.[InfluxDB 3 Core](/influxdb3/core/) is the latest stable version.

#### API token hashing is enabled by default in InfluxDB OSS 2.9.0

Stronger token security: tokens are stored as hashes on disk, so a
copy of the database file doesn’t expose usable tokens. Existing
tokens are hashed on first startup and the original strings can’t
be recovered afterward — **capture any plaintext tokens you still
need before you upgrade**.

For more information, see [Token hashing](/influxdb/v2/admin/tokens/#token-hashing).

The **Scatter** view uses a scatter plot to display time series data.

<img width="710" src="/img/influxdb/2-0-visualizations-scatter-example.png" alt="Scatter plot example">

Select the **Scatter** option from the visualization dropdown in the upper left.

## Scatter behavior

The scatter visualization maps each data point to X and Y coordinates.
X and Y axes are specified with the [X Column](#data) and [Y Column](#data) visualization options.
Each unique series is differentiated using fill colors and symbols.
Use the [Symbol Column](#data) and [Fill Column](#data) options to select columns
used to differentiate points in the visualization.

## Scatter controls

To view **Scatter** controls, click  **Customize** next to
the visualization dropdown.

###### Data

* **Symbol Column**: Define a column containing values that should be differentiated with symbols.
* **Fill Column**: Define a column containing values that should be differentiated with fill color.
* **X Column**: Select a column to display on the x-axis.
* **Y Column**: Select a column to display on the y-axis.
* **Time Format**: Select the time format. Options include:
  * YYYY-MM-DD HH:mm:ss ZZ
  * YYYY-MM-DD hh:mm:ss a ZZ
  * DD/MM/YYYY HH:mm:ss.sss
  * DD/MM/YYYY hh:mm:ss.sss a
  * MM/DD/YYYY HH:mm:ss.sss
  * MM/DD/YYYY hh:mm:ss.sss a
  * YYYY/MM/DD HH:mm:ss
  * YYYY/MM/DD hh:mm:ss a
  * HH:mm
  * hh:mm a
  * HH:mm:ss
  * hh:mm:ss a
  * HH:mm:ss ZZ
  * hh:mm:ss a ZZ
  * HH:mm:ss.sss
  * hh:mm:ss.sss a
  * MMMM D, YYYY HH:mm:ss
  * MMMM D, YYYY hh:mm:ss a
  * dddd, MMMM D, YYYY HH:mm:ss
  * dddd, MMMM D, YYYY hh:mm:ss a

###### Options

* **Color Scheme**: Select a color scheme to use for your scatter plot.

###### X Axis

* **X Axis Label**: Label for the x-axis.
* **Generate X-Axis Tick Marks**: Select the method to generate x-axis tick marks:
  * **Auto**: Select to automatically generate tick marks.
  * **Custom**: To customize the number of x-axis tick marks, select this option, and then enter the following:
    * **Total Tick Marks**: Enter the total number of ticks to display.
    * **Start Tick Marks At**: Enter the value to start ticks at.
    * **Tick Mark Interval**: Enter the interval in between each tick.

* **X Axis Domain**: The x-axis value range.
  * **Auto**: Automatically determine the value range based on values in the data set.
  * **Custom**: Manually specify the minimum x-axis value, maximum x-axis value, or range by including both.
    * **Min**: Minimum x-axis value.
    * **Max**: Maximum x-axis value.

###### Y Axis

* **Y Axis Label**: Label for the y-axis.
* **Y Tick Prefix**: Prefix to be added to y-value.
* **Y Tick Suffix**: Suffix to be added to y-value.
* **Generate Y-Axis Tick Marks**: Select the method to generate y-axis tick marks:
  * **Auto**: Select to automatically generate tick marks.
  * **Custom**: To customize the number of y-axis tick marks, select this option, and then enter the following:
    * **Total Tick Marks**: Enter the total number of ticks to display.
    * **Start Tick Marks At**: Enter the value to start ticks at.
    * **Tick Mark Interval**: Enter the interval in between each tick.

* **Y Axis Domain**: The y-axis value range.
  * **Auto**: Automatically determine the value range based on values in the data set.
  * **Custom**: Manually specify the minimum y-axis value, maximum y-axis value, or range by including both.
    * **Min**: Minimum y-axis value.
    * **Max**: Maximum y-axis value.

###### Hover Legend

* **Orientation**: Select the orientation of the legend that appears upon hover:
  * **Horizontal**: Select to display the legend horizontally.
  * **Vertical**: Select to display the legend vertically.

* **Opacity**: Adjust the legend opacity using the slider.
* **Colorize Rows**: Select to display legend rows in colors.

## Scatter examples

### Cross-measurement correlation

The following example explores possible correlation between CPU and Memory usage.
It uses data collected with the Telegraf [Mem](/telegraf/v1/plugins//#mem)and [CPU](/telegraf/v1/plugins//#cpu) input plugins.

###### Query CPU and memory usage

The following query creates a union of CPU and memory usage.
It scales the CPU usage metric to better align with baseline memory usage.

```js
cpu = from(bucket: "example-bucket")
    |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
    |> filter(fn: (r) => r._measurement == "cpu" and r._field == "usage_system" and r.cpu == "cpu-total")
    // Scale CPU usage
    |> map(fn: (r) => ({r with _value: r._value + 60.0, _time: r._time}))

mem = from(bucket: "example-bucket")
    |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
    |> filter(fn: (r) => r._measurement == "mem" and r._field == "used_percent")

union(tables: [cpu, mem])
```

###### Use a scatter plot to visualize correlation

In the Scatter visualization controls, points are differentiated based on their group keys.

<img src="/img/influxdb/2-0-visualizations-scatter-correlation.png" alt="Heatmap correlation example" width="875">

## Important notes

### Differences between a scatter plot and a heatmap

Scatter plots and [Heatmaps](/influxdb/v2/visualize-data/visualization-types/heatmap/)both visualize the distribution of data points on X and Y axes.
However, in certain cases, scatterplots can “hide” points if they share the same X and Y coordinates.

For example, the dashboard cells below visualize the same query results:

<img src="/img/influxdb/2-0-visualizations-heatmap-vs-scatter.png" alt="Heatmap vs Scatter plot" width="792">

The heatmap indicates isolated high point density, which isn’t visible in the scatter plot.
In the scatter plot visualization, points that share the same X and Y coordinates
appear as a single point.

#### Related

* [Heatmap visualization](/influxdb/v2/visualize-data/visualization-types/heatmap/)
