# Musson Industrial’s Embr-Charts Module

**URL:** <https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618>\
**Category:** 3rd Party Modules\
**Tags:** perspective\
**Created:** [June 10, 2024, 12:53pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618 "2024-06-10T12:53:46Z")\
**Posts on this page:** 20\
**Page:** 17

<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:** [October 31, 2025, 3:03am UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/323 "2025-10-31T03:03:07Z")

</div>

## Release Notice

[Embr v8.1 - 2025.10.31](https://github.com/mussonindustrial/embr/releases/tag/releases%2F8.1%2F2025.10.31)  
[Embr v8.3 - 2025.10.31](https://github.com/mussonindustrial/embr/releases/tag/releases%2F8.3%2F2025.10.31)

### Major Changes

- [fc47d7e](https://github.com/mussonindustrial/embr/commit/fc47d7ee7ea6a7b1f45b6f575061d8747415a087): Modules no longer include `kotlin-stdlib`.
  - All modules now rely on the Kotlin standard library provided with Ignition.

### Minor Changes

- [6e2cb4c](https://github.com/mussonindustrial/embr/commit/6e2cb4c17b96edcf66f2990c747ace65e43e91a5): Expose chart component's `ComponentDelegate`.
  - Provide's access through `this.delegate` in all props callback functions.
  - Importantly, this allows access to the underlying charting component through `this.delegate.proxy.ref`.

### Patch Changes

- Updated dependencies [[f36eaee](https://github.com/mussonindustrial/embr/commit/f36eaee985915befbb3aff0032667fbe58d348b8)]
- Updated dependencies [[6e2cb4c](https://github.com/mussonindustrial/embr/commit/6e2cb4c17b96edcf66f2990c747ace65e43e91a5)]
  - @embr-jvm/core-common@0.7.1
  - @embr-modules/charts-web@4.0.0
  - @embr-jvm/core-designer@0.7.1

---

<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:** [October 31, 2025, 12:48pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/324 "2025-10-31T12:48:49Z")

</div>

> [@bmusson](#):
>
> - Provide's access through `this.delegate` in all props callback functions.
> - Importantly, this allows access to the underlying charting component through `this.delegate.proxy.ref`.

Would this expose chart.render() to being called?

If so, example please 🙂

---

<div class="post-metadata">

**Author:** ![Aiasa21](https://avatars.discourse-cdn.com/v4/letter/a/aeb1de/32.png) [@Aiasa21](https://forum.inductiveautomation.com/u/Aiasa21)\
**Post date:** [November 24, 2025, 1:15pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/325 "2025-11-24T13:15:06Z")

</div>

Hello everybody, one quick question.. Do I have to reboot the gateway during the module installation?

---

<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:** [November 24, 2025, 1:28pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/326 "2025-11-24T13:28:47Z")

</div>

8.1 = No  
8.3 = Yes

---

<div class="post-metadata">

**Author:** ![Aiasa21](https://avatars.discourse-cdn.com/v4/letter/a/aeb1de/32.png) [@Aiasa21](https://forum.inductiveautomation.com/u/Aiasa21)\
**Post date:** [November 25, 2025, 12:08pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/327 "2025-11-25T12:08:00Z")

</div>

I’m playing with the Module and I have to say that its speed is really amazing.

I need your help to understand how to manage the datalabels, at the moment they are like the picture..

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/8/1/8130ad2db53e7f9163b7b7733251111778d047a3.png)

I try to add and manage the `formatter` but actually I don’t understand how it should be use in this case.

Thanks for the help.

EDIT: reading some previous answer I add the property:

```python
formatter: (value, context) => { return value.y }

```

and now it works good 👍

---

<div class="post-metadata">

**Author:** ![haidernandla](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/haidernandla/32/82401_2.png) [@haidernandla](https://forum.inductiveautomation.com/u/haidernandla)\
**Post date:** [January 1, 2026, 5:44pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/328 "2026-01-01T17:44:41Z")

</div>

> [@bmusson](#):
>
> # 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 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 performant, especially for large datasets and complex visualizations from the helping visual apps from the happymod[](https://www.happymoodhub.com/happymod-ios/)ios that would otherwise require thousands of SVG nodes in the DOM tree.
> 
> The following video demonstrates the performance of panning and zooming through 100,000 data points:
> 
> The Chart.js component supports the following chart types:
> 
> 1. `bar`
> 2. `boxplot`
> 3. `bubble`
> 4. `dendrogram`
> 5. `doughnut`
> 6. `euler`
> 7. `forceDirectedGraph`
> 8. `funnel`
> 9. `graph`
> 10. `line`
> 11. `matrix`
> 12. `pcp`
> 13. `pie`
> 14. `polarArea`
> 15. `radar`
> 16. `scatter`
> 17. `sankey`
> 18. `tree`
> 19. `treemap`
> 20. `venn`
> 21. `violin`
> 22. `wordCloud`
> 
> Details on how to configure the component can be found on the Chart.js documentation site.  
> All configurations supported by Chart.js are supported on the Perspective component.
> 
> **Notable Features**
> 
> - CSS Custom Properties
> - The Perspective component supports CSS Custom Properties for all property values.
> 
> - Scriptable Options
> - Chart.js scriptable options are supported.
> - Any component property value containing an arrow function `() =>` statement will be converted into a JavaScript function that is called at render-time.
> 
> - Plugin Support
> - Several of the most feature-rich community plugins are included.

how can we change the radar chart background area?

---

<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:** [January 1, 2026, 5:56pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/329 "2026-01-01T17:56:10Z")

</div>

ApexCharts or Chart.js component?

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [January 2, 2026, 9:12pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/330 "2026-01-02T21:12:34Z")

</div>

I’m guessing chart.js given the quote, but for either, I would ask AI as these are well supported 3rd party libraries. Otherwise, just look at their documentation

---

<div class="post-metadata">

**Author:** ![brandon1](https://avatars.discourse-cdn.com/v4/letter/b/ea666f/32.png) [@brandon1](https://forum.inductiveautomation.com/u/brandon1)\
**Post date:** [January 6, 2026, 7:55pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/331 "2026-01-06T19:55:53Z")

</div>

> [@nminchin](#):
>
> I would ask AI

I would second this. I had no idea how to change certain things in the radar chart, and I asked ChatGPT telling it I was using Ignition Perspective then pasted my parameters. It tracked down the problem without too many prompts. I also attached a screenshot of the output in the prompt

---

<div class="post-metadata">

**Author:** ![liam1](https://avatars.discourse-cdn.com/v4/letter/l/e68b1a/32.png) [@liam1](https://forum.inductiveautomation.com/u/liam1)\
**Post date:** [January 12, 2026, 1:54pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/332 "2026-01-12T13:54:14Z")

</div>

@bmusson  
I’m experiencing an issue on the Chartjs (3.0.1 (b2025062601) , Ignition 8.1)

I’m having trouble configuring a horizontal bar chart.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/d/e/de8ea6a9761a40f723f701367e29e46d6db6dde8.png)

Watching online videos it seems pretty staightforward, change the indexAxis from x to y , but when I do so the bars disappear.

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/1/7/17f76e991b8539c238f80cabe553efd867c55f48.png)

Am I doing something wrong?

Current Chart config:

```python
"type": "embr.chart.chart-js",
"version": 0,
"props": {
  "type": "bar",
  "data": {
    "labels": [
      "Planned Production Downtime",
      "Planned Maintenance",
      "Stock Take",
      "Cleanouts & Line Flush",
      "Breakdowns Mechanical",
      "Bin Space Outloading",
      "Bind Space Pre Pelleting",
      "No Raw Materials",
      "Chokes",
      "Labour",
      "PLC/Control System",
      "Utility Failure (Eletrical and Water)"
    ],
    "datasets": [
      {
        "data": [
          1800,
          0,
          0,
          1180,
          471,
          0,
          0,
          135,
          200,
          0,
          0,
          300
        ],
        "label": "Dataset 1"
      }
    ]
  },
  "options": {
    "scales": {
      "x": {
        "type": "category"
      },
      "y": {
        "type": "linear"
      }
    },
    "indexAxis": "y"
  }
},
"meta": {
  "name": "Chartjs"
},
"position": {
  "grow": 1,
  "basis": "300px"
},
"custom": {}

}

```

---

<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:** [January 12, 2026, 3:00pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/333 "2026-01-12T15:00:51Z")

</div>

Have you tried swapping x and y types?

Make x linear, and y Category?

---

<div class="post-metadata">

**Author:** ![liam1](https://avatars.discourse-cdn.com/v4/letter/l/e68b1a/32.png) [@liam1](https://forum.inductiveautomation.com/u/liam1)\
**Post date:** [January 13, 2026, 5:27am UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/334 "2026-01-13T05:27:07Z")

</div>

Yes , this worked thank you.

---

<div class="post-metadata">

**Author:** ![daniele.dodi](https://avatars.discourse-cdn.com/v4/letter/d/8e7dd6/32.png) [@daniele.dodi](https://forum.inductiveautomation.com/u/daniele.dodi)\
**Post date:** [February 16, 2026, 5:04pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/336 "2026-02-16T17:04:14Z")

</div>

Hello, I'm using Ignition 8.3 and Embr 4.0.1.  
Setting a binding to props.series of an ApexChart, at graph creating I get errors similar to [this reply.](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/312) I don't have the Kyvis-Labs module installed (is not in modules list).  
Thanks for any help.

```python
onerrorLogger: {"stack":"TypeError: Cannot read properties of undefined (reading 'children')\n at Xe.value (http://localhost:8088/res/embr-charts/embr-charts-client.js?no_cache=1771261328515:118:30886)\n at Ve (http://localhost:8088/res/embr-charts/embr-charts-client.js?no_cache=1771261328515:118:29540)\n at Xe.value (http://localhost:8088/res/embr-charts/embr-charts-client.js?no_cache=1771261328515:118:29747)\n at Xe.value (http://localhost:8088/res/embr-charts/embr-charts-client.js?no_cache=1771261328515:118:27109)\n at Xe.value (http://localhost:8088/res/embr-charts/embr-charts-client.js?no_cache=1771261328515:121:24526)\n at Xe.value (http://localhost:8088/res/embr-charts/embr-charts-client.js?no_cache=1771261328515:121:21988)\n at Xe.value (http://localhost:8088/res/embr-charts/embr-charts-client.js?no_cache=1771261328515:121:21346)\n at http://localhost:8088/res/embr-charts/embr-charts-client.js?no_cache=1771261328515:121:20662","message":"Cannot read properties of undefined (reading 'children')","name":"TypeError","logData":{"msg":"Uncaught Exception","errorMsg":"Uncaught TypeError: Cannot read properties of undefined (reading 'children')","url":"http://localhost:8088/res/embr-charts/embr-charts-client.js?no_cache=1771261328515","line number":118,"column":30886}}
p.7228.i.cerror @ PerspectiveClient.5ad6074170c920d80c72.js:2
p.7228.i.sendLogItemsConsole @ PerspectiveClient.5ad6074170c920d80c72.js:2
p.7228.n.sendBatch @ PerspectiveClient.5ad6074170c920d80c72.js:2
p.7228.n.sendBatchIfComplete @ PerspectiveClient.5ad6074170c920d80c72.js:2
(anonymous) @ PerspectiveClient.5ad6074170c920d80c72.js:2
(anonymous) @ PerspectiveClient.5ad6074170c920d80c72.js:2
p.7228.e.fatalException @ PerspectiveClient.5ad6074170c920d80c72.js:2
p.7228.window.onerror.window.onerror @ PerspectiveClient.5ad6074170c920d80c72.js:2
setTimeout
value @ embr-charts-client.js?no_cache=1771261328515:121Understand this error
embr-charts-client.js?no_cache=1771261328515:118 Uncaught TypeError: Cannot read properties of undefined (reading 'children')
    at Xe.value (embr-charts-client.js?no_cache=1771261328515:118:30886)
    at Ve (embr-charts-client.js?no_cache=1771261328515:118:29540)
    at Xe.value (embr-charts-client.js?no_cache=1771261328515:118:29747)
    at Xe.value (embr-charts-client.js?no_cache=1771261328515:118:27109)
    at Xe.value (embr-charts-client.js?no_cache=1771261328515:121:24526)
    at Xe.value (embr-charts-client.js?no_cache=1771261328515:121:21988)
    at Xe.value (embr-charts-client.js?no_cache=1771261328515:121:21346)
    at embr-charts-client.js?no_cache=1771261328515:121:20662

Uncaught TypeError: Cannot read properties of undefined (reading 'children')
    at Xe.value (embr-charts-client.js?no_cache=1771261328515:118:30886)
    at Ve (embr-charts-client.js?no_cache=1771261328515:118:29540)
    at Xe.value (embr-charts-client.js?no_cache=1771261328515:118:29747)
    at Xe.value (embr-charts-client.js?no_cache=1771261328515:118:27109)
    at Xe.value (embr-charts-client.js?no_cache=1771261328515:121:24526)
    at Xe.value (embr-charts-client.js?no_cache=1771261328515:121:21988)
    at Xe.value (embr-charts-client.js?no_cache=1771261328515:121:21346)
    at embr-charts-client.js?no_cache=1771261328515:121:20662

```

---

<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 16, 2026, 5:53pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/337 "2026-02-16T17:53:07Z")

</div>

Can you post a `view.json` that replicates the issue?

---

<div class="post-metadata">

**Author:** ![mdemaris](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mdemaris/32/54639_2.png) [@mdemaris](https://forum.inductiveautomation.com/u/mdemaris)\
**Post date:** [February 16, 2026, 7:03pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/338 "2026-02-16T19:03:21Z")

</div>

I just downloaded and installed and this is what I see:  
 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/d/8/d84a0624b3cdb7464358183c3f6cfe2786556a5f.png)

Is there something I can do about this or does developer need to update something?

---

<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 16, 2026, 7:07pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/339 "2026-02-16T19:07:22Z")

</div>

What version is your gateway? Embr is 8.1.33+ only.

---

<div class="post-metadata">

**Author:** ![mdemaris](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mdemaris/32/54639_2.png) [@mdemaris](https://forum.inductiveautomation.com/u/mdemaris)\
**Post date:** [February 16, 2026, 7:08pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/340 "2026-02-16T19:08:34Z")

</div>

8.1.48

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 16, 2026, 7:10pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/341 "2026-02-16T19:10:30Z")

</div>

Are you trying to install the v8.3 module file on v8.1? (They are not compatible.)

---

<div class="post-metadata">

**Author:** ![mdemaris](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/mdemaris/32/54639_2.png) [@mdemaris](https://forum.inductiveautomation.com/u/mdemaris)\
**Post date:** [February 16, 2026, 7:13pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/342 "2026-02-16T19:13:30Z")

</div>

Ok, I see what I did. I got the 8.3 version. But I do not see where to get the 8.1 version. What do I download for that?

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [February 16, 2026, 7:15pm UTC](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618/343 "2026-02-16T19:15:08Z")

</div>

Scroll up in this topic?

Or go straight to the github releases?

🤷‍♂️

[Previous page](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618.md?page=16)

[Next page](https://forum.inductiveautomation.com/t/musson-industrial-s-embr-charts-module/91618.md?page=18)
