Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Import Plotly.js in Angular

I followed the instructions from this SO answer to integrate plotly in the application.

Unfortunately I experience typescript errors, when trying out the standard examples of plotly.js. The argument types of Plotly.newPlot(...) seem to be not correct.

enter image description here

Here is my component:

import {Component, OnInit} from '@angular/core';
import * as Plotly from 'plotly.js';
import {Config, Data, Layout} from 'plotly.js';

@Component({
  selector: 'app-tabs',
  templateUrl: './tabs.component.html',
  styleUrls: ['./tabs.component.css']
})
export class TabsComponent implements OnInit {

  constructor() {
  }

  ngOnInit() {
    let y0 = [];
    let y1 = [];
    for (var i = 0; i < 50; i++) {
      y0[i] = Math.random();
      y1[i] = Math.random() + 1;
    }
    var trace1 = {
      y: y0,
      type: 'box'
    };
    let trace2 = {
      y: y1,
      type: 'box'
    };

    let data = [trace1, trace2];
    Plotly.newPlot('myDiv', data);
  }
}

I use [email protected] and angular v6.0.0

like image 299
d4rty Avatar asked Mar 07 '23 06:03

d4rty


2 Answers

You don't need to put Plotly in angular.json simply import like this.

import * as Plotly from 'plotly.js/dist/plotly.js';
import {Config, Data, Layout} from 'plotly.js/dist/plotly.js';
like image 120
Nexeuz Avatar answered Mar 16 '23 18:03

Nexeuz


I found the following workaround.

  • store Plotly.js in assets folder manually
  • import the script in angular.json: "scripts": [src/assets/scripts/plotlyjs/plotly.js"]
  • add declare const Plotly right under the import statements in the component where you want to use plotly
like image 20
d4rty Avatar answered Mar 16 '23 18:03

d4rty