• Edit
  • Download
  • <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <title>ZingGrid: Blank Grid</title>
      <script nonce="undefined" src="https://cdn.zingchart.com/zingchart.min.js"></script>
      <!-- can also render the modules ahead of time here -->
      <!-- <script nonce="undefined" src="https://cdn.zingchart.com/modules/zingchart-zoom-buttons.min.js"></script> -->
      <style>
        html,
        body {
          height: 100%;
          width: 100%;
          margin: 0;
          padding: 0;
        }
    
        #myChart {
          height: 100%;
          width: 100%;
          min-height: 150px;
        }
    
        .zc-ref {
          display: none;
        }
      </style>
    </head>
    
    <body>
      <!-- CHART CONTAINER -->
      <div id="myChart">
        <a class="zc-ref" href="https://www.zingchart.com">Powered by ZingChart</a>
      </div>
    
      <script>
        ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"]; // 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
    
          // full ZingChart schema can be found here:
          // https://www.zingchart.com/docs/api/json-configuration/
          let myConfig = {
            globals: {
              fontFamily: 'Lucida Sans Unicode'
            },
            type: 'area',
            plot: {
              mode: 'fast',
              exact: true,
              smartSampling: true,
              hintTs: true,
              maxNodes: 150,
              maxTrackers: 150,
            },
            plotarea: {
              margin: '50 40 40 80'
            },
            preview: {
              borderWidth: 1,
              handle: {
                lineWidth: 0,
                height: 20
              },
              adjustLayout: true
            },
            crosshairX: {},
            scrollX: {},
            scaleX: {
              transform: {
                type: 'date'
              },
              item: {
                fontSize: 10
              },
              zooming: true
            },
            scaleY: {
              autoFit: true,
              minValue: 'auto',
              short: true,
              label: {
                text: 'VOLUMES'
              },
              item: {
                fontSize: 10
              },
              guide: {
                lineStyle: 'solid'
              }
            },
            noData: {
              text: 'No data found',
              backgroundColor: '#efefef'
            },
            // if fetching data remotely define an empty series
            series: [{
              values: []
            }]
          };
    
          // defined ABOVE the render and sets flags 
          // globally for ALL charts on a page
          zingchart.DEV.CACHECANVASTEXT = true;
          zingchart.DEV.CHECKDECIMALS = false;
          zingchart.DEV.CACHESELECTION = true;
          zingchart.DEV.MEDIARULES = false;
          // zingchart.DEV.SKIPTRACKERS = true;
    
    
          // ONLY ONCE we have loaded the zoom-button module
          zingchart.loadModules('zoom-buttons', () => {
    
            // render the chart right away
            zingchart.render({
              id: 'myChart',
              data: myConfig,
              height: '100%',
              width: '100%',
              output: 'canvas',
              modules: 'zoom-buttons',
            });
    
            // fetch the data remotely
            fetch('https://cdn.zingchart.com/datasets/timeseries-sample-data.json')
              .then(res => res.json())
              .then(timeseriesData => {
                // assign data to chart
                zingchart.exec('myChart', 'setseriesvalues', {
                  plotindex: 0,
                  values: timeseriesData.values
                });
              })
              .catch(e => {
                // if error, render blank chart
                console.error('--- error fetching data from: https://cdn.zingchart.com/datasets/timeseries-sample-data.json ---');
                myConfig.title = {};
                myConfig.title.text = 'Error Fetching https://cdn.zingchart.com/datasets/timeseries-sample-data.json';
                // just exec setdata api method since we don't need to render the zoom modules
                // https://www.zingchart.com/docs/api/methods/
                zingchart.exec('myChart', 'setdata', {
                  data: myConfig
                });
              });
          });
        });
      </script>
    </body>
    
    </html>
    <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <title>ZingGrid: Blank Grid</title>
      <script src="https://cdn.zingchart.com/zingchart.min.js"></script>
      <!-- can also render the modules ahead of time here -->
      <!-- <script src="https://cdn.zingchart.com/modules/zingchart-zoom-buttons.min.js"></script> -->
    </head>
    
    <body>
      <!-- CHART CONTAINER -->
      <div id="myChart">
        <a class="zc-ref" href="https://www.zingchart.com">Powered by ZingChart</a>
      </div>
    
    </body>
    
    </html>
    html,
    body {
      height: 100%;
      width: 100%;
      margin: 0;
      padding: 0;
    }
    
    #myChart {
      height: 100%;
      width: 100%;
      min-height: 150px;
    }
    
    .zc-ref {
      display: none;
    }
    // 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
    
      // full ZingChart schema can be found here:
      // https://www.zingchart.com/docs/api/json-configuration/
      let myConfig = {
        globals: {
          fontFamily: 'Lucida Sans Unicode'
        },
        type: 'area',
        plot: {
          mode: 'fast',
          exact: true,
          smartSampling: true,
          hintTs: true,
          maxNodes: 150,
          maxTrackers: 150,
        },
        plotarea: {
          margin: '50 40 40 80'
        },
        preview: {
          borderWidth: 1,
          handle: {
            lineWidth: 0,
            height: 20
          },
          adjustLayout: true
        },
        crosshairX: {},
        scrollX: {},
        scaleX: {
          transform: {
            type: 'date'
          },
          item: {
            fontSize: 10
          },
          zooming: true
        },
        scaleY: {
          autoFit: true,
          minValue: 'auto',
          short: true,
          label: {
            text: 'VOLUMES'
          },
          item: {
            fontSize: 10
          },
          guide: {
            lineStyle: 'solid'
          }
        },
        noData: {
          text: 'No data found',
          backgroundColor: '#efefef'
        },
        // if fetching data remotely define an empty series
        series: [{
          values: []
        }]
      };
    
      // defined ABOVE the render and sets flags 
      // globally for ALL charts on a page
      zingchart.DEV.CACHECANVASTEXT = true;
      zingchart.DEV.CHECKDECIMALS = false;
      zingchart.DEV.CACHESELECTION = true;
      zingchart.DEV.MEDIARULES = false;
      // zingchart.DEV.SKIPTRACKERS = true;
    
    
      // ONLY ONCE we have loaded the zoom-button module
      zingchart.loadModules('zoom-buttons', () => {
    
        // render the chart right away
        zingchart.render({
          id: 'myChart',
          data: myConfig,
          height: '100%',
          width: '100%',
          output: 'canvas',
          modules: 'zoom-buttons',
        });
    
        // fetch the data remotely
        fetch('https://cdn.zingchart.com/datasets/timeseries-sample-data.json')
          .then(res => res.json())
          .then(timeseriesData => {
            // assign data to chart
            zingchart.exec('myChart', 'setseriesvalues', {
              plotindex: 0,
              values: timeseriesData.values
            });
          })
          .catch(e => {
            // if error, render blank chart
            console.error('--- error fetching data from: https://cdn.zingchart.com/datasets/timeseries-sample-data.json ---');
            myConfig.title = {};
            myConfig.title.text = 'Error Fetching https://cdn.zingchart.com/datasets/timeseries-sample-data.json';
            // just exec setdata api method since we don't need to render the zoom modules
            // https://www.zingchart.com/docs/api/methods/
            zingchart.exec('myChart', 'setdata', {
              data: myConfig
            });
          });
      });
    });