aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/app/_elements/_charts/box-plot/box-plot.component.ts
diff options
context:
space:
mode:
authorNevena Bojovic <nenabojov@gmail.com>2022-04-26 21:05:08 +0200
committerNevena Bojovic <nenabojov@gmail.com>2022-04-26 21:05:08 +0200
commit5857e1c71eda1ee6455d55ef9f8d1c10f75a8457 (patch)
tree3a1b766b7abc015f09482d8a9cdad899924ce698 /frontend/src/app/_elements/_charts/box-plot/box-plot.component.ts
parente859227a3722f28f858d6bb4cedfdd7b868680ff (diff)
Box plot-sredjeno.
Diffstat (limited to 'frontend/src/app/_elements/_charts/box-plot/box-plot.component.ts')
-rw-r--r--frontend/src/app/_elements/_charts/box-plot/box-plot.component.ts64
1 files changed, 60 insertions, 4 deletions
diff --git a/frontend/src/app/_elements/_charts/box-plot/box-plot.component.ts b/frontend/src/app/_elements/_charts/box-plot/box-plot.component.ts
index 0cef8f90..078e7176 100644
--- a/frontend/src/app/_elements/_charts/box-plot/box-plot.component.ts
+++ b/frontend/src/app/_elements/_charts/box-plot/box-plot.component.ts
@@ -1,15 +1,71 @@
-import { Component, OnInit } from '@angular/core';
+import { AfterViewInit, Component, ElementRef, Input, OnInit, ViewChild } from '@angular/core';
+import { Chart, LinearScale, CategoryScale } from 'chart.js';
+import { BoxPlotController, BoxAndWiskers } from '@sgratzl/chartjs-chart-boxplot';
+
+function randomValues(count: number, min: number, max: number) {
+ const delta = max - min;
+ return Array.from({ length: count }).map(() => Math.random() * delta + min);
+}
+
+Chart.register(BoxPlotController, BoxAndWiskers, LinearScale, CategoryScale);
@Component({
selector: 'app-box-plot',
templateUrl: './box-plot.component.html',
styleUrls: ['./box-plot.component.css']
})
-export class BoxPlotComponent implements OnInit {
+export class BoxPlotComponent implements AfterViewInit {
+ @Input()width: number = 800;
+ @Input()height: number = 450;
+
+ @ViewChild('boxplot') chartRef!: ElementRef;
constructor() { }
- ngOnInit(): void {
- }
+ boxplotData = {
+ // define label tree
+ labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
+ datasets: [{
+ label: 'Dataset 1',
+ backgroundColor: 'rgba(255,0,0,0.5)',
+ borderColor: 'red',
+ borderWidth: 1,
+ outlierColor: '#999999',
+ padding: 10,
+ itemRadius: 0,
+ data: [
+ randomValues(100, 0, 100),
+ randomValues(100, 0, 20),
+ randomValues(100, 20, 70),
+ randomValues(100, 60, 100),
+ randomValues(40, 50, 100),
+ randomValues(100, 60, 120),
+ randomValues(100, 80, 100)
+ ]
+ }, {
+ label: 'Dataset 2',
+ backgroundColor: 'rgba(0,0,255,0.5)',
+ borderColor: 'blue',
+ borderWidth: 1,
+ outlierColor: '#999999',
+ padding: 10,
+ itemRadius: 0,
+ data: [
+ randomValues(100, 60, 100),
+ randomValues(100, 0, 100),
+ randomValues(100, 0, 20),
+ randomValues(100, 20, 70),
+ randomValues(40, 60, 120),
+ randomValues(100, 20, 100),
+ randomValues(100, 80, 100)
+ ]
+ }]
+ };
+ ngAfterViewInit(): void {
+ const myChart = new Chart(this.chartRef.nativeElement, {
+ type: "boxplot",
+ data: this.boxplotData
+ });
+}
}