-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcharts.js
87 lines (82 loc) · 2.41 KB
/
charts.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
let chart;
const buildChartData = (data, casesType) => {
let chartData = [];
let lastDataPoint;
for(let date in data.cases){
if(lastDataPoint){
let newDataPoint = {
x: date,
y: data[casesType][date] - lastDataPoint
}
chartData.push(newDataPoint);
}
lastDataPoint = data[casesType][date];
}
return chartData;
}
const updateData = (data, borderColor, backgroundColor) => {
chart.data.datasets[0].data = data;
chart.data.datasets[0].borderColor = borderColor;
chart.data.datasets[0].backgroundColor = backgroundColor;
chart.update({
duration: 800,
easing: 'easeInOutCubic'
});
}
const buildChart = (chartData) => {
var timeFormat = 'MM/DD/YY';
var ctx = document.getElementById('myChart').getContext('2d');
chart = new Chart(ctx, {
// The type of chart we want to create
type: 'line',
// The data for our dataset
data: {
datasets: [{
backgroundColor: 'rgba(204, 16, 52, 0.5)',
borderColor: '#CC1034',
data: chartData
}]
},
// Configuration options go here
options: {
legend: {
display: false
},
elements: {
point:{
radius: 0
}
},
maintainAspectRatio: false,
tooltips: {
mode: 'index',
intersect: false,
callbacks: {
label: function(tooltipItem, data) {
return numeral(tooltipItem.value).format('+0,0');
}
}
},
scales: {
xAxes: [{
type: "time",
time: {
format: timeFormat,
tooltipFormat: 'll'
}
}],
yAxes: [{
gridLines: {
display:false
},
ticks: {
// Include a dollar sign in the ticks
callback: function(value, index, values) {
return numeral(value).format('0a');
}
}
}]
}
}
});
}