<!doctype html> <html class="zc-html"> <head> <meta charset="utf-8"> <title>ZingSoft Demo</title> <script nonce="undefined" src="https://cdn.zingchart.com/zingchart.min.js"></script> <style> .chart--container { height: 100%; width: 100%; min-height: 530px; } .zc-ref { display: none; } </style> </head> <body class="zc-body"> <div id="myChart" class="chart--container"> <a href="https://www.zingchart.com/" rel="noopener" class="zc-ref">Powered by ZingChart</a> </div> <script> ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"]; // DEFINE DATA // ----------------------------- let games = ['BRA vs CHI', 'COL vs URU', 'NED vs MEX', 'CRC vs GRE', 'FRA vs NGA', 'GER vs ALG', 'ARG vs SWI', 'BEL vs USA']; // HELPER METHODS // ----------------------------- let _r_ = (min, max) => { return Math.round(min + (max - min) * Math.random()); }; // create fake data, we will plot distance travelled by all players per each minute of the full 90 mins game let chartData = {}, g, m, r; for (g = 0; g < games.length; g++) { chartData[g] = []; for (m = 0; m < 90; m++) { // try to simulate original chart, majority of data is on the lower part r = Math.random(); if (r >= 0 && r < 0.85) { chartData[g].push([m, _r_(0, 100)]); } else if (r >= 0.85 && r < 0.95) { chartData[g].push([m, _r_(50, 300)]); } else { chartData[g].push([m, _r_(200, 800)]); } } } // CHART CONFIG // ----------------------------- let chartConfig = { type: 'scatter', clustered: true, title: { text: 'Distance Travelled by Football Players', adjustLayout: true }, plot: { clusterOffset: '5px', marker: { alpha: 0.5, borderWidth: 0, size: '4px' } }, plotarea: { margin: 'dynamic' }, scaleX: { values: games, item: { fontSize: '13px', fontWeight: 'bold' }, label: { text: 'Game' }, lineWidth: 0, offset: 0, placement: 'opposite', tick: { visible: false } }, scaleY: { guide: { visible: false }, label: { text: 'Distance travelled (m)' }, lineColor: '#aaa', offset: 0, tick: { lineColor: '#aaa' } }, tooltip: { text: 'Minute %scale-key-value: %node-value meters travelled' }, series: [] }; for (g = 0; g < games.length; g++) { let sdata = { values: chartData[g], clustered: true }; chartConfig['series'].push(sdata); } // RENDER CHARTS // ----------------------------- // window:load event for Javascript to run after HTML // because this Javascript is injected into the document head window.addEventListener('load', () => { // Javascript code to execute after DOM content zingchart.render({ id: 'myChart', data: chartConfig, output: 'svg' }); }); </script> </body> </html>
<!doctype html> <html class="zc-html"> <head> <meta charset="utf-8"> <title>ZingSoft Demo</title> <script src="https://cdn.zingchart.com/zingchart.min.js"></script> </head> <body class="zc-body"> <div id="myChart" class="chart--container"> <a href="https://www.zingchart.com/" rel="noopener" class="zc-ref">Powered by ZingChart</a> </div> </body> </html>
.chart--container { height: 100%; width: 100%; min-height: 530px; } .zc-ref { display: none; }
// DEFINE DATA // ----------------------------- let games = ['BRA vs CHI', 'COL vs URU', 'NED vs MEX', 'CRC vs GRE', 'FRA vs NGA', 'GER vs ALG', 'ARG vs SWI', 'BEL vs USA']; // HELPER METHODS // ----------------------------- let _r_ = (min, max) => { return Math.round(min + (max - min) * Math.random()); }; // create fake data, we will plot distance travelled by all players per each minute of the full 90 mins game let chartData = {}, g, m, r; for (g = 0; g < games.length; g++) { chartData[g] = []; for (m = 0; m < 90; m++) { // try to simulate original chart, majority of data is on the lower part r = Math.random(); if (r >= 0 && r < 0.85) { chartData[g].push([m, _r_(0, 100)]); } else if (r >= 0.85 && r < 0.95) { chartData[g].push([m, _r_(50, 300)]); } else { chartData[g].push([m, _r_(200, 800)]); } } } // CHART CONFIG // ----------------------------- let chartConfig = { type: 'scatter', clustered: true, title: { text: 'Distance Travelled by Football Players', adjustLayout: true }, plot: { clusterOffset: '5px', marker: { alpha: 0.5, borderWidth: 0, size: '4px' } }, plotarea: { margin: 'dynamic' }, scaleX: { values: games, item: { fontSize: '13px', fontWeight: 'bold' }, label: { text: 'Game' }, lineWidth: 0, offset: 0, placement: 'opposite', tick: { visible: false } }, scaleY: { guide: { visible: false }, label: { text: 'Distance travelled (m)' }, lineColor: '#aaa', offset: 0, tick: { lineColor: '#aaa' } }, tooltip: { text: 'Minute %scale-key-value: %node-value meters travelled' }, series: [] }; for (g = 0; g < games.length; g++) { let sdata = { values: chartData[g], clustered: true }; chartConfig['series'].push(sdata); } // RENDER CHARTS // ----------------------------- // window:load event for Javascript to run after HTML // because this Javascript is injected into the document head window.addEventListener('load', () => { // Javascript code to execute after DOM content zingchart.render({ id: 'myChart', data: chartConfig, output: 'svg' }); });