-
-
Notifications
You must be signed in to change notification settings - Fork 22
/
datalimits.html
87 lines (84 loc) · 2.66 KB
/
datalimits.html
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
<!DOCTYPE html>
<html>
<head>
<title>Box Plot Chart</title>
<script src="https://unpkg.com/chart.js@3.8.0/dist/chart.js"></script>
<script src="../build/index.umd.js"></script>
<script src="https://unpkg.com/d3-random@latest/dist/d3-random.min.js"></script>
<script src="./utils.js"></script>
</head>
<body>
<div id="container" style="width: 75%">
<canvas id="canvas"></canvas>
</div>
<button id="limitMinMax">Limit to min/max</button>
<button id="limitWhiskers">Limit to whiskers</button>
<script>
const samples = this.Samples.utils;
const color = Chart.helpers.color;
const b = d3.randomNormal();
const random = (min, max) => () => b() * ((max || 1) - (min || 0)) + (min || 0);
const boxplotData = {
labels: samples.months({ count: 7 }),
datasets: [
{
label: 'Dataset 1',
backgroundColor: color(window.chartColors.red).alpha(0.5).rgbString(),
borderColor: window.chartColors.red,
borderWidth: 1,
data: samples.boxplots({ count: 7, random: random }),
outlierBackgroundColor: '#999999',
},
{
label: 'Dataset 2',
backgroundColor: color(window.chartColors.blue).alpha(0.5).rgbString(),
borderColor: window.chartColors.blue,
borderWidth: 1,
data: samples.boxplotsArray({ count: 7, random: random }),
outlierBackgroundColor: '#999999',
},
],
};
const options = {
responsive: true,
legend: {
position: 'top',
},
title: {
display: true,
text: 'Chart.js Box Plot Chart',
},
minStats: 'min',
maxStats: 'max',
};
window.onload = () => {
const ctx = document.getElementById('canvas').getContext('2d');
let myBar = new Chart(ctx, {
type: 'boxplot',
data: boxplotData,
options: options,
});
document.getElementById('limitMinMax').onclick = () => {
options.minStats = 'min';
options.maxStats = 'max';
myBar.destroy();
myBar = new Chart(ctx, {
type: 'boxplot',
data: boxplotData,
options: options,
});
};
document.getElementById('limitWhiskers').onclick = () => {
options.minStats = 'whiskerMin';
options.maxStats = 'whiskerMax';
myBar.destroy();
myBar = new Chart(ctx, {
type: 'boxplot',
data: boxplotData,
options: options,
});
};
};
</script>
</body>
</html>