123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- <!DOCTYPE html>
- <html lang="en-US">
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=Edge">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <title>area > radar | Chart.js sample</title>
- <link rel="stylesheet" type="text/css" href="../../style.css">
- <script src="../../../dist/Chart.bundle.js"></script>
- <script src="../../utils.js"></script>
- <script src="analyser.js"></script>
- </head>
- <body>
- <div class="content">
- <div class="wrapper" style="max-width: 512px; margin: auto">
- <canvas id="chart-0"></canvas>
- </div>
- <div class="toolbar">
- <button onclick="togglePropagate(this)">Propagate</button>
- <button onclick="toggleSmooth(this)">Smooth</button>
- <button onclick="randomize(this)">Randomize</button>
- </div>
- <div id="chart-analyser" class="analyser"></div>
- </div>
- <script>
- var presets = window.chartColors;
- var utils = Samples.utils;
- var inputs = {
- min: 8,
- max: 16,
- count: 8,
- decimals: 2,
- continuity: 1
- };
- function generateData() {
- // radar chart doesn't support stacked values, let's do it manually
- var values = utils.numbers(inputs);
- inputs.from = values;
- return values;
- }
- function generateLabels() {
- return utils.months({count: inputs.count});
- }
- utils.srand(42);
- var data = {
- labels: generateLabels(),
- datasets: [{
- backgroundColor: utils.transparentize(presets.red),
- borderColor: presets.red,
- data: generateData(),
- label: 'D0'
- }, {
- backgroundColor: utils.transparentize(presets.orange),
- borderColor: presets.orange,
- data: generateData(),
- hidden: true,
- label: 'D1',
- fill: '-1'
- }, {
- backgroundColor: utils.transparentize(presets.yellow),
- borderColor: presets.yellow,
- data: generateData(),
- label: 'D2',
- fill: 1
- }, {
- backgroundColor: utils.transparentize(presets.green),
- borderColor: presets.green,
- data: generateData(),
- label: 'D3',
- fill: false
- }, {
- backgroundColor: utils.transparentize(presets.blue),
- borderColor: presets.blue,
- data: generateData(),
- label: 'D4',
- fill: '-1'
- }, {
- backgroundColor: utils.transparentize(presets.purple),
- borderColor: presets.purple,
- data: generateData(),
- label: 'D5',
- fill: '-1'
- }]
- };
- var options = {
- maintainAspectRatio: true,
- spanGaps: false,
- elements: {
- line: {
- tension: 0.000001
- }
- },
- plugins: {
- filler: {
- propagate: false
- },
- 'samples-filler-analyser': {
- target: 'chart-analyser'
- }
- }
- };
- var chart = new Chart('chart-0', {
- type: 'radar',
- data: data,
- options: options
- });
- // eslint-disable-next-line no-unused-vars
- function togglePropagate(btn) {
- var value = btn.classList.toggle('btn-on');
- chart.options.plugins.filler.propagate = value;
- chart.update();
- }
- // eslint-disable-next-line no-unused-vars
- function toggleSmooth(btn) {
- var value = btn.classList.toggle('btn-on');
- chart.options.elements.line.tension = value ? 0.4 : 0.000001;
- chart.update();
- }
- // eslint-disable-next-line no-unused-vars
- function randomize() {
- inputs.from = [];
- chart.data.datasets.forEach(function(dataset) {
- dataset.data = generateData();
- });
- chart.update();
- }
- </script>
- </body>
- </html>
|