• Edit
  • Download
    1. <!doctype html>
    2. <html class="zc-html">
    3.  
    4. <head>
    5. <meta charset="utf-8">
    6. <title>ZingSoft Demo</title>
    7. <script nonce="undefined" src="https://cdn.zingchart.com/zingchart.min.js"></script>
    8. <style>
    9. .chart--container {
    10. height: 100%;
    11. width: 100%;
    12. min-height: 530px;
    13. }
    14.  
    15. .zc-ref {
    16. display: none;
    17. }
    18. </style>
    19. </head>
    20.  
    21. <body class="zc-body">
    22. <div id="myChart" class="chart--container">
    23. <a href="https://www.zingchart.com/" rel="noopener" class="zc-ref">Powered by ZingChart</a>
    24. </div>
    25.  
    26. <script>
    27. ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"]; // DEFINE DATA
    28. // -----------------------------
    29. 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'];
    30.  
    31. // HELPER METHODS
    32. // -----------------------------
    33. let _r_ = (min, max) => {
    34. return Math.round(min + (max - min) * Math.random());
    35. };
    36.  
    37. // create fake data, we will plot distance travelled by all players per each minute of the full 90 mins game
    38. let chartData = {},
    39. g, m, r;
    40. for (g = 0; g < games.length; g++) {
    41. chartData[g] = [];
    42. for (m = 0; m < 90; m++) {
    43. // try to simulate original chart, majority of data is on the lower part
    44. r = Math.random();
    45. if (r >= 0 && r < 0.85) {
    46. chartData[g].push([m, _r_(0, 100)]);
    47. } else if (r >= 0.85 && r < 0.95) {
    48. chartData[g].push([m, _r_(50, 300)]);
    49. } else {
    50. chartData[g].push([m, _r_(200, 800)]);
    51. }
    52. }
    53. }
    54.  
    55. // CHART CONFIG
    56. // -----------------------------
    57. let chartConfig = {
    58. type: 'scatter',
    59. clustered: true,
    60. title: {
    61. text: 'Distance Travelled by Football Players',
    62. adjustLayout: true
    63. },
    64. plot: {
    65. clusterOffset: '5px',
    66. marker: {
    67. alpha: 0.5,
    68. borderWidth: 0,
    69. size: '4px'
    70. }
    71. },
    72. plotarea: {
    73. margin: 'dynamic'
    74. },
    75. scaleX: {
    76. values: games,
    77. item: {
    78. fontSize: '13px',
    79. fontWeight: 'bold'
    80. },
    81. label: {
    82. text: 'Game'
    83. },
    84. lineWidth: 0,
    85. offset: 0,
    86. placement: 'opposite',
    87. tick: {
    88. visible: false
    89. }
    90. },
    91. scaleY: {
    92. guide: {
    93. visible: false
    94. },
    95. label: {
    96. text: 'Distance travelled (m)'
    97. },
    98. lineColor: '#aaa',
    99. offset: 0,
    100. tick: {
    101. lineColor: '#aaa'
    102. }
    103. },
    104. tooltip: {
    105. text: 'Minute %scale-key-value: %node-value meters travelled'
    106. },
    107. series: []
    108. };
    109.  
    110. for (g = 0; g < games.length; g++) {
    111. let sdata = {
    112. values: chartData[g],
    113. clustered: true
    114. };
    115. chartConfig['series'].push(sdata);
    116. }
    117.  
    118. // RENDER CHARTS
    119. // -----------------------------
    120. // window:load event for Javascript to run after HTML
    121. // because this Javascript is injected into the document head
    122. window.addEventListener('load', () => {
    123. // Javascript code to execute after DOM content
    124. zingchart.render({
    125. id: 'myChart',
    126. data: chartConfig,
    127. output: 'svg'
    128. });
    129. });
    130. </script>
    131. </body>
    132.  
    133. </html>
    1. <!doctype html>
    2. <html class="zc-html">
    3.  
    4. <head>
    5. <meta charset="utf-8">
    6. <title>ZingSoft Demo</title>
    7. <script src="https://cdn.zingchart.com/zingchart.min.js"></script>
    8. </head>
    9.  
    10. <body class="zc-body">
    11. <div id="myChart" class="chart--container">
    12. <a href="https://www.zingchart.com/" rel="noopener" class="zc-ref">Powered by ZingChart</a>
    13. </div>
    14.  
    15. </body>
    16.  
    17. </html>
    1. .chart--container {
    2. height: 100%;
    3. width: 100%;
    4. min-height: 530px;
    5. }
    6.  
    7. .zc-ref {
    8. display: none;
    9. }
    1. // DEFINE DATA
    2. // -----------------------------
    3. 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'];
    4.  
    5. // HELPER METHODS
    6. // -----------------------------
    7. let _r_ = (min, max) => {
    8. return Math.round(min + (max - min) * Math.random());
    9. };
    10.  
    11. // create fake data, we will plot distance travelled by all players per each minute of the full 90 mins game
    12. let chartData = {},
    13. g, m, r;
    14. for (g = 0; g < games.length; g++) {
    15. chartData[g] = [];
    16. for (m = 0; m < 90; m++) {
    17. // try to simulate original chart, majority of data is on the lower part
    18. r = Math.random();
    19. if (r >= 0 && r < 0.85) {
    20. chartData[g].push([m, _r_(0, 100)]);
    21. } else if (r >= 0.85 && r < 0.95) {
    22. chartData[g].push([m, _r_(50, 300)]);
    23. } else {
    24. chartData[g].push([m, _r_(200, 800)]);
    25. }
    26. }
    27. }
    28.  
    29. // CHART CONFIG
    30. // -----------------------------
    31. let chartConfig = {
    32. type: 'scatter',
    33. clustered: true,
    34. title: {
    35. text: 'Distance Travelled by Football Players',
    36. adjustLayout: true
    37. },
    38. plot: {
    39. clusterOffset: '5px',
    40. marker: {
    41. alpha: 0.5,
    42. borderWidth: 0,
    43. size: '4px'
    44. }
    45. },
    46. plotarea: {
    47. margin: 'dynamic'
    48. },
    49. scaleX: {
    50. values: games,
    51. item: {
    52. fontSize: '13px',
    53. fontWeight: 'bold'
    54. },
    55. label: {
    56. text: 'Game'
    57. },
    58. lineWidth: 0,
    59. offset: 0,
    60. placement: 'opposite',
    61. tick: {
    62. visible: false
    63. }
    64. },
    65. scaleY: {
    66. guide: {
    67. visible: false
    68. },
    69. label: {
    70. text: 'Distance travelled (m)'
    71. },
    72. lineColor: '#aaa',
    73. offset: 0,
    74. tick: {
    75. lineColor: '#aaa'
    76. }
    77. },
    78. tooltip: {
    79. text: 'Minute %scale-key-value: %node-value meters travelled'
    80. },
    81. series: []
    82. };
    83.  
    84. for (g = 0; g < games.length; g++) {
    85. let sdata = {
    86. values: chartData[g],
    87. clustered: true
    88. };
    89. chartConfig['series'].push(sdata);
    90. }
    91.  
    92. // RENDER CHARTS
    93. // -----------------------------
    94. // window:load event for Javascript to run after HTML
    95. // because this Javascript is injected into the document head
    96. window.addEventListener('load', () => {
    97. // Javascript code to execute after DOM content
    98. zingchart.render({
    99. id: 'myChart',
    100. data: chartConfig,
    101. output: 'svg'
    102. });
    103. });