Advertisement
Guest User

Untitled

a guest
Jan 12th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { Component, OnInit, Input, ViewChild, ElementRef } from '@angular/core';
  2. import { Measurement } from '../api/models';
  3. import { Chart } from 'chart.js';
  4.  
  5. @Component({
  6.   selector: 'app-chart',
  7.   templateUrl: './chart.component.html',
  8.   styleUrls: ['./chart.component.css']
  9. })
  10. export class ChartComponent implements OnInit {
  11.  
  12.   constructor() { }
  13.  
  14.   ngOnInit() {
  15.   }
  16.  
  17.   private tempChart: Chart;
  18.   private dayOfWeek: string;
  19.   private currDate: string;
  20.   private currYear: string;
  21.   private chartType: string;
  22.  
  23.   @Input()
  24.   set setChartType(type: string) {
  25.     this.chartType = type;
  26.   }
  27.  
  28.   @Input()
  29.   set setMeasurements(measurements : Measurement[]) {
  30.     this.setTempChart(measurements);
  31.   }
  32.  
  33.   setTempChart(measurements: Measurement[]): any {
  34.     //set data
  35.     if(measurements == null)
  36.       return;
  37.  
  38.     var arrays = this.setArrays(measurements);
  39.  
  40.     // if(measurements.length == 0)
  41.     //   return;
  42.  
  43.     this.context = (<HTMLCanvasElement>this.myCanvas.nativeElement).getContext('2d');
  44.  
  45.     console.log(this.context)
  46.     this.tempChart = new Chart(this.context, {
  47.       type: 'line',
  48.       data: {
  49.         labels: arrays.timeArray,
  50.         datasets: [{
  51.           data: arrays.valArray,
  52.           borderColor: 'rgba(42, 161, 152, 1)',
  53.           backgroundColor: '#184048',
  54.           pointBackgroundColor: '#184048',
  55.           label: this.chartType
  56.         }]
  57.       }
  58.     })
  59.   }
  60.  
  61.   @ViewChild('chartCanvas') myCanvas: ElementRef;
  62.     public context: CanvasRenderingContext2D;
  63.  
  64.   getDayOfWeek(date) {
  65.     var dayOfWeek = new Date(date).getDay();    
  66.     return isNaN(dayOfWeek) ? null : ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][dayOfWeek];
  67.   }
  68.  
  69.   setArrays(ms : Measurement[])  {
  70.     var timeArray = [];
  71.     var valArray = [];
  72.       ms.forEach(m => {
  73.         var slicedtime = m.Timestamp.slice(m.Timestamp.indexOf('T')+1, m.Timestamp.length-1);
  74.        
  75.         timeArray.push(slicedtime.substr(0, 5));
  76.         valArray.push(m.Value);
  77.       });
  78.  
  79.     return {timeArray: timeArray, valArray: valArray}
  80.   }
  81.  
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement