D3.js is a JavaScript library for producing dynamic, interactive data visualizations in web browsers. It makes use of the widely implemented SVG, HTML5, and CSS standards.
Below is high level 5 steps to get basic D3.JS graph going using Angular 6
npm install d3 --save npm install --save @types/d3
generateData() {
this.chartData = [];
for (let i = 0; i < (8 + Math.floor(Math.random() * 10)); i++) {
this.chartData.push([
Index ${i}
,
Math.floor(Math.random() * 100)
]);
}
}
<app-barchart *ngIf="chartData" [data]="chartData">
@ViewChild('chart') private chartContainer: ElementRef;
let element = this.chartContainer.nativeElement; let svg = d3.select(element).append('svg') .attr('width', element.offsetWidth) .attr('height', element.offsetHeight);
this.chart = svg.append('g').attr('class', 'bars')
Example file below shows Step 5 in detail. Also it also has updateChart() method if underneath data changes.