mirror of
https://github.com/chartjs/Chart.js.git
synced 2024-10-06 20:29:12 +02:00
03735563f4
Refactored interaction modes to use lookup functions in Chart.Interaction.modes and added new modes for 'point', 'index', 'nearest', 'x', and 'y'
173 lines
6.1 KiB
HTML
173 lines
6.1 KiB
HTML
<!doctype html>
|
|
<html>
|
|
|
|
<head>
|
|
<title>Line Chart</title>
|
|
<script src="../dist/Chart.bundle.js"></script>
|
|
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
|
|
<style>
|
|
canvas {
|
|
-moz-user-select: none;
|
|
-webkit-user-select: none;
|
|
-ms-user-select: none;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div style="width:75%;">
|
|
<canvas id="canvas"></canvas>
|
|
</div>
|
|
<br>
|
|
<br>
|
|
<button id="randomizeData">Randomize Data</button>
|
|
<button id="addDataset">Add Dataset</button>
|
|
<button id="removeDataset">Remove Dataset</button>
|
|
<button id="addData">Add Data</button>
|
|
<button id="removeData">Remove Data</button>
|
|
<script>
|
|
var MONTHS = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
|
var randomScalingFactor = function() {
|
|
return Math.round(Math.random() * 100 * (Math.random() > 0.5 ? -1 : 1));
|
|
};
|
|
var randomColorFactor = function() {
|
|
return Math.round(Math.random() * 255);
|
|
};
|
|
var randomColor = function(opacity) {
|
|
return 'rgba(' + randomColorFactor() + ',' + randomColorFactor() + ',' + randomColorFactor() + ',' + (opacity || '.3') + ')';
|
|
};
|
|
|
|
var config = {
|
|
type: 'line',
|
|
data: {
|
|
labels: ["January", "February", "March", "April", "May", "June", "July"],
|
|
datasets: [{
|
|
label: "My First dataset",
|
|
data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()],
|
|
fill: false,
|
|
borderDash: [5, 5],
|
|
}, {
|
|
label: "My Second dataset",
|
|
data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()],
|
|
fill: false,
|
|
borderDash: [5, 5],
|
|
}, {
|
|
label: "My Third dataset - No bezier",
|
|
data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()],
|
|
lineTension: 0,
|
|
fill: false,
|
|
}, {
|
|
label: "My Fourth dataset",
|
|
data: [randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor(), randomScalingFactor()],
|
|
fill: false,
|
|
}]
|
|
},
|
|
options: {
|
|
responsive: true,
|
|
legend: {
|
|
position: 'bottom',
|
|
},
|
|
hover: {
|
|
mode: 'index'
|
|
},
|
|
scales: {
|
|
xAxes: [{
|
|
display: true,
|
|
scaleLabel: {
|
|
display: true,
|
|
labelString: 'Month'
|
|
}
|
|
}],
|
|
yAxes: [{
|
|
display: true,
|
|
scaleLabel: {
|
|
display: true,
|
|
labelString: 'Value'
|
|
}
|
|
}]
|
|
},
|
|
title: {
|
|
display: true,
|
|
text: 'Chart.js Line Chart - Legend'
|
|
}
|
|
}
|
|
};
|
|
|
|
$.each(config.data.datasets, function(i, dataset) {
|
|
var background = randomColor(0.5);
|
|
dataset.borderColor = background;
|
|
dataset.backgroundColor = background;
|
|
dataset.pointBorderColor = background;
|
|
dataset.pointBackgroundColor = background;
|
|
dataset.pointBorderWidth = 1;
|
|
});
|
|
|
|
window.onload = function() {
|
|
var ctx = document.getElementById("canvas").getContext("2d");
|
|
window.myLine = new Chart(ctx, config);
|
|
};
|
|
|
|
$('#randomizeData').click(function() {
|
|
$.each(config.data.datasets, function(i, dataset) {
|
|
dataset.data = dataset.data.map(function() {
|
|
return randomScalingFactor();
|
|
});
|
|
|
|
});
|
|
|
|
window.myLine.update();
|
|
});
|
|
|
|
$('#addDataset').click(function() {
|
|
var background = randomColor(0.5);
|
|
var newDataset = {
|
|
label: 'Dataset ' + config.data.datasets.length,
|
|
borderColor: background,
|
|
backgroundColor: background,
|
|
pointBorderColor: background,
|
|
pointBackgroundColor: background,
|
|
pointBorderWidth: 1,
|
|
fill: false,
|
|
data: [],
|
|
};
|
|
|
|
for (var index = 0; index < config.data.labels.length; ++index) {
|
|
newDataset.data.push(randomScalingFactor());
|
|
}
|
|
|
|
config.data.datasets.push(newDataset);
|
|
window.myLine.update();
|
|
});
|
|
|
|
$('#addData').click(function() {
|
|
if (config.data.datasets.length > 0) {
|
|
var month = MONTHS[config.data.labels.length % MONTHS.length];
|
|
config.data.labels.push(month);
|
|
|
|
$.each(config.data.datasets, function(i, dataset) {
|
|
dataset.data.push(randomScalingFactor());
|
|
});
|
|
|
|
window.myLine.update();
|
|
}
|
|
});
|
|
|
|
$('#removeDataset').click(function() {
|
|
config.data.datasets.splice(0, 1);
|
|
window.myLine.update();
|
|
});
|
|
|
|
$('#removeData').click(function() {
|
|
config.data.labels.splice(-1, 1); // remove the label first
|
|
|
|
config.data.datasets.forEach(function(dataset, datasetIndex) {
|
|
dataset.data.pop();
|
|
});
|
|
|
|
window.myLine.update();
|
|
});
|
|
</script>
|
|
</body>
|
|
|
|
</html>
|