# Perspective Scatter Plot

**URL:** <https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575>\
**Category:** Ignition\
**Created:** [January 23, 2020, 10:27pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575 "2020-01-23T22:27:53Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![malone46844](https://avatars.discourse-cdn.com/v4/letter/m/b9bd4f/32.png) [@malone46844](https://forum.inductiveautomation.com/u/malone46844)\
**Post date:** [January 23, 2020, 10:27pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/1 "2020-01-23T22:27:53Z")

</div>

Is there a way to make the perspective XY Chart component display a scatter plot?

The closest I’ve come is setting the line.appearance.stroke.width property to 0 and setting the line.appearance.bullets[0].enabled property to true. But this takes a ridiculous amount of time to render and even with bullet width and height set to 1 they are huge. This is using a moderate dataset with ~20k pairs.

Am I missing something?

---

<div class="post-metadata">

**Author:** ![guganathan.r](https://avatars.discourse-cdn.com/v4/letter/g/8dc957/32.png) [@guganathan.r](https://forum.inductiveautomation.com/u/guganathan.r)\
**Post date:** [April 19, 2020, 3:24pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/2 "2020-04-19T15:24:04Z")

</div>

Hi, I have the same issue. Is there any solution recommended?

---

<div class="post-metadata">

**Author:** ![jball](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jball/32/11128_2.png) [@jball](https://forum.inductiveautomation.com/u/jball)\
**Post date:** [April 20, 2020, 5:05pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/3 "2020-04-20T17:05:23Z")

</div>

This is possible with the Time Series Chart. You’ll need to create a trend, and once created, you’ll be able to assign that trend to display as a Scatter Plot:  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/2X/b/b37ea74b8528f88d6034e52350e7402879bb3a74.png)  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/2X/1/1e3033d83d9a0db75ac8cafdfcfa4c0717a69b5f.png)

---

<div class="post-metadata">

**Author:** ![malone46844](https://avatars.discourse-cdn.com/v4/letter/m/b9bd4f/32.png) [@malone46844](https://forum.inductiveautomation.com/u/malone46844)\
**Post date:** [April 21, 2020, 2:27pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/4 "2020-04-21T14:27:17Z")

</div>

Yes, it would be great to have this available on the XY Chart component for data that isn’t time series, like Power vs RPM. There are many cases where these kinds of plots give our technicians insight to machine performance.

---

<div class="post-metadata">

**Author:** ![Adrian\_Richardsen](https://avatars.discourse-cdn.com/v4/letter/a/6a8cbe/32.png) [@Adrian\_Richardsen](https://forum.inductiveautomation.com/u/Adrian_Richardsen)\
**Post date:** [November 15, 2022, 9:20pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/6 "2022-11-15T21:20:09Z")

</div>

Hi there, were you able to create a chart for power vs rpm or similiar?  
Thanks in advance

---

<div class="post-metadata">

**Author:** ![malone46844](https://avatars.discourse-cdn.com/v4/letter/m/b9bd4f/32.png) [@malone46844](https://forum.inductiveautomation.com/u/malone46844)\
**Post date:** [November 18, 2022, 11:21am UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/7 "2022-11-18T11:21:06Z")

</div>

It's disappointing, but still no with the XY Chart in perspective.

---

<div class="post-metadata">

**Author:** ![Stephanie\_Aguiar](https://avatars.discourse-cdn.com/v4/letter/s/f17d59/32.png) [@Stephanie\_Aguiar](https://forum.inductiveautomation.com/u/Stephanie_Aguiar)\
**Post date:** [February 6, 2025, 9:26pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/8 "2025-02-06T21:26:41Z")

</div>

did anyone ever find the solution to this?

---

<div class="post-metadata">

**Author:** ![MMaynard](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mmaynard/32/3366_2.png) [@MMaynard](https://forum.inductiveautomation.com/u/MMaynard)\
**Post date:** [February 6, 2025, 9:33pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/9 "2025-02-06T21:33:06Z")

</div>

The Apexcharts addon supports all types of charts.  
I know it isn't the builtin XY Plot, but they work great.

> [@KyvisLabs ApexChart Module](https://forum.inductiveautomation.com/t/kyvislabs-apexchart-module/55263/2):
>
> Is this for Perspective or Vision?

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [February 6, 2025, 10:14pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/10 "2025-02-06T22:14:20Z")

</div>

Shameless plug.

> [@Musson Industrial’s Embr-Charts Module](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618):
>
> Embr-Charts Musson Industrial is excited to announce the release of embr-charts, an Ignition module that adds a collection of enhanced Perspective charting components. Chart.js Component This initial release contains a [Chart.js](https://www.chartjs.org/) component. [https://github.com/mussonindustrial/embr/raw/main/modules/embr-charts/docs/examples/chart-js.png](https://github.com/mussonindustrial/embr/raw/main/modules/embr-charts/docs/examples/chart-js.png) Chart.js renders chart elements on an HTML5 canvas unlike other D3.js-based charting libraries that render as SVG. Canvas rendering makes Chart.js very performa…

---

<div class="post-metadata">

**Author:** ![MMaynard](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mmaynard/32/3366_2.png) [@MMaynard](https://forum.inductiveautomation.com/u/MMaynard)\
**Post date:** [February 7, 2025, 2:05pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/11 "2025-02-07T14:05:07Z")

</div>

> [@bmusson](#):
>
> Shameless plug.

I really need to download and test these out.

---

<div class="post-metadata">

**Author:** ![malone46844](https://avatars.discourse-cdn.com/v4/letter/m/b9bd4f/32.png) [@malone46844](https://forum.inductiveautomation.com/u/malone46844)\
**Post date:** [February 7, 2025, 5:05pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/12 "2025-02-07T17:05:42Z")

</div>

No, the built in XY Chart hasn't seen much care. I just started testing Embr-Charts for these. It performs great on the datasets I've tested - 10k to 50k pairs, virtually zero render time.

 ![Screenshot 2025-02-07 at 11.56.08 AM](https://us1.discourse-cdn.com/inductiveautomation/original/3X/d/f/df96eb274eabe8b5ae9b4cb9835b81be5a5341b2.png)

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [February 7, 2025, 5:23pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/13 "2025-02-07T17:23:38Z")

</div>

> [@malone46844](#):
>
> virtually zero render time.

Love to hear it.

The limiting factor when drawing large datasets (100k+ points) is actually just that they have to exist in the property tree. By using the chart's [JavaScript proxy object](https://docs.mussonindustrial.com/ignition/embr-charts/components/chart-js/methods/getJavaScriptProxy/) you can put data points directly into the chart, bypassing the property tree entirely.

This post has some more details.

> [@Musson Industrial’s Embr-Charts Module](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/87):
>
> Here's an example of loading extremely large datasets into the chart by bypassing the component props and directly updating the data of the chart instance. I'm generating my data here, but it's not hard to imagine using a query instead. def runAction(self, event): from java.lang import Math component = self.parent.parent.getChild("Chartjs") chart = component.getJavaScriptProxy('chart') elements = self.view.custom.actions.elements chunkSize = self.view.custom.actions.chunkSize c…

---

<div class="post-metadata">

**Author:** ![Stephanie\_Aguiar](https://avatars.discourse-cdn.com/v4/letter/s/f17d59/32.png) [@Stephanie\_Aguiar](https://forum.inductiveautomation.com/u/Stephanie_Aguiar)\
**Post date:** [February 7, 2025, 10:10pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/15 "2025-02-07T22:10:00Z")

</div>

did you use the time series scatter plot graph and change the properties for the x axis to not be in a date format? could you show the props you used? I just dowloaded the module so not sure how to use the props.

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [February 7, 2025, 10:25pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/16 "2025-02-07T22:25:33Z")

</div>

The simplest way to get started is to use the `Line` item in the palette, then change the `type` to `scatter`.

Your data will go under `data.datasets[i].data` as `{x, y}` pairs.

I'd recommend reading through the `Chart.js` documentation site, they have a page with an example scatter chart.

> **[Scatter Chart | Chart.js](https://www.chartjs.org/docs/latest/charts/scatter.html)**
>
> Open source HTML5 Charts for your website

---

<div class="post-metadata">

**Author:** ![Stephanie\_Aguiar](https://avatars.discourse-cdn.com/v4/letter/s/f17d59/32.png) [@Stephanie\_Aguiar](https://forum.inductiveautomation.com/u/Stephanie_Aguiar)\
**Post date:** [February 7, 2025, 11:04pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/17 "2025-02-07T23:04:16Z")

</div>

I have a tag that is a dataset with 2 columns (my x and y values). Where would I do a tag binding to get these values in the scatter plot. I tried to bind it in data\> datasets\>0\>data and the points don't pop up!

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [February 7, 2025, 11:08pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/18 "2025-02-07T23:08:08Z")

</div>

> [@Stephanie\_Aguiar](#):
>
> dataset

The component doesn't convert datasets for you, you'll have to use a transform to turn the rows of the dataset into `{x, y}` pairs.

---

<div class="post-metadata">

**Author:** ![Human\_error](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/human_error/32/69876_2.png) [@Human\_error](https://forum.inductiveautomation.com/u/Human_error)\
**Post date:** [February 11, 2025, 3:20am UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/19 "2025-02-11T03:20:31Z")

</div>

hallo, i want to know how to import this module to our designer. may you can give the tutorial, thanks

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [February 11, 2025, 3:26am UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/20 "2025-02-11T03:26:16Z")

</div>

Latest download is always on GitHub, look under the assets of the latest release.

> **[charts · Releases · mussonindustrial/embr](https://github.com/mussonindustrial/embr/releases?q=charts&expanded=true)**
>
> 🔥 Open-source modules for Ignition by Inductive Automation. The home of Charts, Thermo, Periscope, and more. - mussonindustrial/embr

Once downloaded, you can install it like any other Ignition module through the gateway UI.

> **[Installing or Upgrading a Module | Ignition User Manual](https://www.docs.inductiveautomation.com/docs/8.1/getting-started/installing-and-upgrading/installing-or-upgrading-a-module#install-or-update-a-module)**
>
> Module Configuration

---

<div class="post-metadata">

**Author:** ![Tjark\_Sterk](https://avatars.discourse-cdn.com/v4/letter/t/ac91a4/32.png) [@Tjark\_Sterk](https://forum.inductiveautomation.com/u/Tjark_Sterk)\
**Post date:** [February 11, 2025, 12:26pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/21 "2025-02-11T12:26:07Z")

</div>

Hey great work from you.  
Last year I was also playing around with using Chart.js in Ignition and wanted to build a proper interface for it when i find the time. Guess you already did the work for me! 😃

---

<div class="post-metadata">

**Author:** ![Stephanie\_Aguiar](https://avatars.discourse-cdn.com/v4/letter/s/f17d59/32.png) [@Stephanie\_Aguiar](https://forum.inductiveautomation.com/u/Stephanie_Aguiar)\
**Post date:** [February 11, 2025, 5:28pm UTC](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575/22 "2025-02-11T17:28:26Z")

</div>

do you think you can provide an example?

[Next page](https://forum.inductiveautomation.com/t/perspective-scatter-plot/31575.md?page=2)
