• 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>
      <style>
        html,
        body {
          height: 100%;
          width: 100%;
          margin: 0;
          padding: 0;
        }
    
        #myChart {
          margin: 0 auto;
          height: 380px;
          width: 98%;
          box-shadow: 5px 5px 5px #eee;
          background-color: #fff;
          border: 1px solid #eee;
          display: flex;
          flex-flow: column wrap;
        }
    
        .controls--container {
          display: flex;
          align-items: center;
          justify-content: center;
        }
    
        .controls--container button {
          margin: 40px;
          padding: 15px;
          background-color: #FF4081;
          border: none;
          color: #fff;
          box-shadow: 5px 5px 5px #eee;
          font-size: 16px;
          font-family: Roboto;
          cursor: pointer;
          transition: .1s;
        }
    
        .controls--container button:hover {
          opacity: .9;
        }
    
        /*button movement*/
        .controls--container button:active {
          border-width: 0 0 2px 0;
          transform: translateY(8px);
          opacity: 0.9;
        }
    
        .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>
      <div class="controls--container">
        <button id="clear">Clear</button>
        <button id="stop">Stop</button>
        <button id="start">Start</button>
        <button id="random">Randomize Interval</button>
        <span id="output"></span>
      </div>
      <script>
        ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"]; //real-time feed random math function
        function realTimeFeed(callback) {
          var tick = {};
          tick.plot0 = parseInt(10 + 90 * Math.random(), 10);
          tick.plot1 = parseInt(10 + 90 * Math.random(), 10);
          callback(JSON.stringify(tick));
        };
    
        // define top level feed control functions
        function clearGraph() {
          zingchart.exec('myChart', 'clearfeed')
        }
    
        function startGraph() {
          zingchart.exec('myChart', 'startfeed');
        }
    
        function stopGraph() {
          zingchart.exec('myChart', 'stopfeed');
        }
    
        function randomizeInterval() {
          let interval = Math.floor(Math.random() * (1000 - 50)) + 50;
          zingchart.exec('myChart', 'setinterval', {
            interval: interval,
            update: false
          });
          output.textContent = 'Interval set to: ' + interval;
        }
        // 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
    
          //clear start stop click events
          document.getElementById('clear').addEventListener('click', clearGraph);
          document.getElementById('start').addEventListener('click', startGraph);
          document.getElementById('stop').addEventListener('click', stopGraph);
          document.getElementById('random').addEventListener('click', randomizeInterval);
    
          // full ZingChart schema can be found here:
          // https://www.zingchart.com/docs/api/json-configuration/
          const myConfig = {
            //chart styling
            type: 'line',
            globals: {
              fontFamily: 'Roboto',
            },
            backgroundColor: '#fff',
            title: {
              backgroundColor: '#1565C0',
              text: 'Real-Time Line Chart',
              color: '#fff',
              height: '30x',
            },
            plotarea: {
              marginTop: '80px'
            },
            crosshairX: {
              lineWidth: 4,
              lineStyle: 'dashed',
              lineColor: '#424242',
              marker: {
                visible: true,
                size: 9
              },
              plotLabel: {
                backgroundColor: '#fff',
                borderColor: '#e3e3e3',
                borderRadius: 5,
                padding: 15,
                fontSize: 15,
                shadow: true,
                shadowAlpha: 0.2,
                shadowBlur: 5,
                shadowDistance: 4,
              },
              scaleLabel: {
                backgroundColor: '#424242',
                padding: 5
              }
            },
            scaleY: {
              guide: {
                visible: false
              },
            },
            tooltip: {
              visible: false
            },
            //real-time feed
            refresh: {
              type: 'feed',
              transport: 'http',
              url: 'https://us-central1-zingchart-com.cloudfunctions.net/public_http_feed?min=0&max=40&plots=1',
              interval: 200,
              maxTicks: 10,
              adjustScale: true,
              resetTimeout: 10,
            },
            plot: {
              shadow: 1,
              shadowColor: '#eee',
              shadowDistance: '10px',
              lineWidth: 5,
              hoverState: {
                visible: false
              },
              marker: {
                visible: false
              },
              aspect: 'spline'
            },
            series: [{
              values: [],
              lineColor: '#2196F3',
              text: 'Blue Line'
            }, {
              values: [],
              lineColor: '#ff9800',
              text: 'Orange Line'
            }]
          };
    
          // render chart with width and height to
          // fill the parent container CSS dimensions
          zingchart.render({
            id: 'myChart',
            data: myConfig,
            height: '100%',
            width: '100%',
          });
        });
      </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>
    </head>
    
    <body>
      <!-- CHART CONTAINER -->
      <div id="myChart">
        <a class="zc-ref" href="https://www.zingchart.com">Powered by ZingChart</a>
      </div>
      <div class="controls--container">
        <button id="clear">Clear</button>
        <button id="stop">Stop</button>
        <button id="start">Start</button>
        <button id="random">Randomize Interval</button>
        <span id="output"></span>
      </div>
    </body>
    
    </html>
    html,
    body {
      height: 100%;
      width: 100%;
      margin: 0;
      padding: 0;
    }
    
    #myChart {
      margin: 0 auto;
      height: 380px;
      width: 98%;
      box-shadow: 5px 5px 5px #eee;
      background-color: #fff;
      border: 1px solid #eee;
      display: flex;
      flex-flow: column wrap;
    }
    
    .controls--container {
      display: flex;
      align-items: center;
      justify-content: center;
    }
    
    .controls--container button {
      margin: 40px;
      padding: 15px;
      background-color: #FF4081;
      border: none;
      color: #fff;
      box-shadow: 5px 5px 5px #eee;
      font-size: 16px;
      font-family: Roboto;
      cursor: pointer;
      transition: .1s;
    }
    
    .controls--container button:hover {
      opacity: .9;
    }
    
    /*button movement*/
    .controls--container button:active {
      border-width: 0 0 2px 0;
      transform: translateY(8px);
      opacity: 0.9;
    }
    
    .zc-ref {
      display: none;
    }
    //real-time feed random math function
    function realTimeFeed(callback) {
      var tick = {};
      tick.plot0 = parseInt(10 + 90 * Math.random(), 10);
      tick.plot1 = parseInt(10 + 90 * Math.random(), 10);
      callback(JSON.stringify(tick));
    };
    
    // define top level feed control functions
    function clearGraph() {
      zingchart.exec('myChart', 'clearfeed')
    }
    
    function startGraph() {
      zingchart.exec('myChart', 'startfeed');
    }
    
    function stopGraph() {
      zingchart.exec('myChart', 'stopfeed');
    }
    
    function randomizeInterval() {
      let interval = Math.floor(Math.random() * (1000 - 50)) + 50;
      zingchart.exec('myChart', 'setinterval', {
        interval: interval,
        update: false
      });
      output.textContent = 'Interval set to: ' + interval;
    }
    // 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
    
      //clear start stop click events
      document.getElementById('clear').addEventListener('click', clearGraph);
      document.getElementById('start').addEventListener('click', startGraph);
      document.getElementById('stop').addEventListener('click', stopGraph);
      document.getElementById('random').addEventListener('click', randomizeInterval);
    
      // full ZingChart schema can be found here:
      // https://www.zingchart.com/docs/api/json-configuration/
      const myConfig = {
        //chart styling
        type: 'line',
        globals: {
          fontFamily: 'Roboto',
        },
        backgroundColor: '#fff',
        title: {
          backgroundColor: '#1565C0',
          text: 'Real-Time Line Chart',
          color: '#fff',
          height: '30x',
        },
        plotarea: {
          marginTop: '80px'
        },
        crosshairX: {
          lineWidth: 4,
          lineStyle: 'dashed',
          lineColor: '#424242',
          marker: {
            visible: true,
            size: 9
          },
          plotLabel: {
            backgroundColor: '#fff',
            borderColor: '#e3e3e3',
            borderRadius: 5,
            padding: 15,
            fontSize: 15,
            shadow: true,
            shadowAlpha: 0.2,
            shadowBlur: 5,
            shadowDistance: 4,
          },
          scaleLabel: {
            backgroundColor: '#424242',
            padding: 5
          }
        },
        scaleY: {
          guide: {
            visible: false
          },
        },
        tooltip: {
          visible: false
        },
        //real-time feed
        refresh: {
          type: 'feed',
          transport: 'http',
          url: 'https://us-central1-zingchart-com.cloudfunctions.net/public_http_feed?min=0&max=40&plots=1',
          interval: 200,
          maxTicks: 10,
          adjustScale: true,
          resetTimeout: 10,
        },
        plot: {
          shadow: 1,
          shadowColor: '#eee',
          shadowDistance: '10px',
          lineWidth: 5,
          hoverState: {
            visible: false
          },
          marker: {
            visible: false
          },
          aspect: 'spline'
        },
        series: [{
          values: [],
          lineColor: '#2196F3',
          text: 'Blue Line'
        }, {
          values: [],
          lineColor: '#ff9800',
          text: 'Orange Line'
        }]
      };
    
      // render chart with width and height to
      // fill the parent container CSS dimensions
      zingchart.render({
        id: 'myChart',
        data: myConfig,
        height: '100%',
        width: '100%',
      });
    });