charts component ts and html - Reporting L11
Tue Jun 18 2024 07:09:34 GMT+0000 (Coordinated Universal Time)
Saved by @iamkatmakhafola
//TS import { Component, ElementRef, OnInit, ViewChild } from '@angular/core'; import { Chart, registerables } from 'chart.js'; import { RegionModel } from '../Models/regionModel'; import { RegionService } from '../service/region.service'; Chart.register(...registerables); @Component({ selector: 'app-charts', standalone: true, imports: [], templateUrl: './charts.component.html', styleUrl: './charts.component.scss' }) export class ChartsComponent implements OnInit{ data: any; @ViewChild('myTemp') myTempRef!: ElementRef; constructor(private regionService : RegionService) {} ngOnInit(): void { this.regionService.getRegions().subscribe(response => { let regionList = response; this.data = response.$values; this.populateChartData(this.data); console.log('data',regionList) return regionList }); } populateChartData(data: RegionModel[]) { let labelsData: string [] = []; let labelsPopulation: number [] = []; data.forEach((element: any) => { labelsData.push(element.code); labelsPopulation.push(element.population) }); new Chart("barchart", { type: 'bar', data: { labels: labelsData, datasets: [{ label: '# of Population', data: labelsPopulation, borderWidth: 1 }] }, options: { scales: { y: { beginAtZero: true }, } } }); new Chart("piechart", { type: 'pie', data: { labels: labelsData, datasets: [{ label: '# of Population', data: labelsPopulation, borderWidth: 1 }] }, options: { scales: { y: { beginAtZero: true } } } }); new Chart("dochart", { type: 'doughnut', data: { labels: labelsData, datasets: [{ label: '# of Population', data: labelsPopulation, borderWidth: 1 }] }, options: { scales: { y: { beginAtZero: true } } } }); new Chart("pochart", { type: 'polarArea', data: { labels: labelsData, datasets: [{ label: '# of Population', data: labelsPopulation, borderWidth: 1 }] }, options: { scales: { y: { beginAtZero: true } } } }); new Chart("rochart", { type: 'radar', data: { labels: labelsData, datasets: [{ label: '# of Population', data: labelsPopulation, borderWidth: 1 }] }, options: { scales: { y: { beginAtZero: true } } } }); new Chart("linechart", { type: 'line', data: { labels: labelsData, datasets: [{ label: '# of Population', data: labelsPopulation, borderWidth: 1 }] }, options: { scales: { y: { beginAtZero: true } } } }); new Chart("bubchart", { type: 'bubble', data: { labels: labelsData, datasets: [{ label: '# of Population', data: labelsPopulation, borderWidth: 1 }] }, options: { scales: { y: { beginAtZero: true } } } }); } } //HTML <div class="row"> <div class="col-lg-6"> <h2>Line Chart</h2> <canvas id="linechart"></canvas> </div> <div class="col-lg-6"> <h2>Bar Chart</h2> <canvas id="barchart"></canvas> </div> <div class="col-lg-6"> <h2>Pie Chart</h2> <canvas id="piechart"></canvas> </div> <div class="col-lg-6"> <h2>Doughnut Chart</h2> <canvas id="dochart"></canvas> </div> <div class="col-lg-6"> <h2>polarArea Chart</h2> <canvas id="pochart"></canvas> </div> <div class="col-lg-6"> <h2>Radar Chart</h2> <canvas id="rochart"></canvas> </div> </div>
Comments