32👍
I had a similar issue, it turned out I was referencing an old example.
First, as you’ve already correctly done, install the library using NPM:
npm install chart.js --save
Then, in your component, import the library:
import Chart from 'chart.js';
To get up and running with a quick example, have a look at the example code in the Chart.js documentation or see my example below.
dashboard.component.ts
import Chart from 'chart.js';
import { ViewChild, Component, ElementRef, OnInit } from '@angular/core';
@Component({
selector: 'app-dashboard',
template: '<canvas #donut></canvas>'
})
export class DashboardComponent implements OnInit {
@ViewChild('donut') donut: ElementRef;
constructor(
) { }
ngOnInit() {
let donutCtx = this.donut.nativeElement.getContext('2d');
var data = {
labels: [
"Value A",
"Value B"
],
datasets: [
{
"data": [101342, 55342], // Example data
"backgroundColor": [
"#1fc8f8",
"#76a346"
]
}]
};
var chart = new Chart(
donutCtx,
{
"type": 'doughnut',
"data": data,
"options": {
"cutoutPercentage": 50,
"animation": {
"animateScale": true,
"animateRotate": false
}
}
}
);
}
}
- [Chartjs]-Different color for each bar in a bar chart; ChartJS
- [Chartjs]-Chart.js core.js:6162 ERROR Error: "line" is not a registered controller
22👍
In the template don’t forget to enclose canvas in a div.
If canvas is a direct child of custom directive in dom, then chart might not load.
<div><canvas id="myChart"></canvas></div>
I have wasted lot of time in finding this issue.
5👍
Here is the best module out of few on npmjs:
Then you can use it like this in your module:
import { ChartModule } from 'angular2-chartjs';
@NgModule({
imports: [ ChartModule ]
// ...
})
export class AppModule {
}
And in html template:
<chart [type]="type" [data]="data" [options]="options"></chart>
Don’t forget to fill it with data 😉
2👍
If you are using webpack you may try adding the chart.js file (or the minified version) to the entry property as follows:
...
entry: {
'chartJS': './node_modules/chart.js/dist/Chart.bundle.min.js',
// Other mappings
}
...
1👍
I had this problem using <p-chart>
primeNG.
Just add this in your index.html:
<script src= "https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.6.0/Chart.bundle.min.js" charset="utf-8"></script>
And that´s it, you don´t have to import in your typescript.
I found that in chart documentation
-then use a Chart.js CDN.
1👍
I tried. this works for me easy to implements
https://valor-software.com/ng2-charts/
- [Chartjs]-Pie Chart Legend – Chart.js
- [Chartjs]-JavaScript Chart.js – Custom data formatting to display on tooltip