• Edit
  • Download
  • <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <title>ZingSoft Demo</title>
    
      <script nonce="undefined" src="https://cdn.zingchart.com/zingchart.min.js"></script>
      <style>
        #myChart,
        body,
        html {
          height: 100%;
          width: 100%;
        }
    
        .zc-ref {
          display: none;
        }
      </style>
    </head>
    
    <body>
      <button id="ZCPauseFeed">Pause Feed</button>
      <button id="ZCStartFeed">Start Feed</button>
      <div id='myChart'><a class="zc-ref" href="https://www.zingchart.com/">Powered by ZingChart</a></div>
      <script>
        ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"];
        var minScaleValue = 1373045400000;
        var myConfig = {
          backgroundColor: "#fff",
          globals: {
            color: "#666"
          },
          graphset: [{
            type: "line",
            title: {
              text: "Meter History 1",
              adjustLayout: true,
              "media-rules": [{
                "max-width": 650,
                "fontSize": 14
              }]
            },
            width: "100%",
            "media-rules": [{
              "max-width": 650,
              "x": 0,
              "y": "60%",
              "width": '100%',
              "height": "40%%",
            }],
            scaleX: {
              step: 3000,
              transform: {
                type: "date",
                all: "%D<br>%H:%i:%s"
              }
            },
            "scale-y": {
              values: "0:100:25",
              placement: "default",
              lineColor: "#FB301E",
              tick: {
                lineColor: "#FB301E"
              },
              item: {
                fontColor: "#FB301E",
                bold: true
              }
            },
            "scale-y-2": {
              values: "0:20:5",
              placement: "default",
              lineColor: "#E2D51A",
              tick: {
                lineColor: "#E2D51A"
              },
              item: {
                fontColor: "#E2D51A",
                bold: true
              }
            },
            "scale-y-3": {
              values: "0:40:10",
              placement: "default",
              lineColor: "#00AE4D",
              tick: {
                lineColor: "#00AE4D",
              },
              item: {
                fontColor: "#00AE4D",
                bold: true
              }
            },
            plotarea: {
              margin: "dynamic",
              marginRight: "4%"
            },
            crosshairX: {
              shared: true,
              lineColor: "#23211E",
              scaleLabel: {
                backgroundColor: "#E3DEDA",
                fontColor: "#414042"
              },
              plotLabel: {
                backgroundColor: "#f0ece8",
                fontColor: "#414042",
                borderWidth: 1,
                borderColor: "#000"
              }
            },
            tooltip: {
              visible: false
            },
            series: [{
              values: [
                [minScaleValue, 15],
                [minScaleValue + 3000, 15]
              ],
              lineColor: "#00AE4D",
              text: "Energy Output",
              scales: "scale-x, scale-y-3",
              marker: {
                borderWidth: 2,
                borderColor: "#00AE4D",
                backgroundColor: "#fff",
                type: "circle"
              }
            }, {
              values: [
                [minScaleValue, 25],
                [minScaleValue + 3000, 15]
              ],
              lineColor: "#E2D51A",
              text: "Energy Recycled",
              scales: "scale-x, scale-y-2",
              marker: {
                borderWidth: 2,
                borderColor: "#E2D51A",
                backgroundColor: "#fff",
                type: "triangle",
                size: 5
              }
            }, {
              values: [
                [minScaleValue, 35],
                [minScaleValue + 3000, 25]
              ],
              lineColor: "#FB301E",
              text: "Energy Consumed",
              scales: "scale-x, scale-y",
              marker: {
                borderWidth: 2,
                borderColor: "#FB301E",
                backgroundColor: "#fff",
                type: "square"
              }
            }]
          }, {
            type: "line",
            title: {
              text: "Meter History 2",
              adjustLayout: true,
              "media-rules": [{
                "max-width": 650,
                "fontSize": 14
              }]
            },
            width: "100%",
            "media-rules": [{
              "max-width": 650,
              "x": 0,
              "y": "60%",
              "width": '100%',
              "height": "40%%",
            }],
            scaleX: {
    
              step: 3000,
              transform: {
                type: "date",
                all: "%D<br>%H:%i:%s"
              }
            },
            "scale-y": {
              values: "0:100:25",
              placement: "default",
              lineColor: "#FB301E",
              tick: {
                lineColor: "#FB301E"
              },
              item: {
                fontColor: "#FB301E",
                bold: true
              }
            },
            "scale-y-2": {
              values: "0:20:5",
              placement: "default",
              lineColor: "#E2D51A",
              tick: {
                lineColor: "#E2D51A"
              },
              item: {
                fontColor: "#E2D51A",
                bold: true
              }
            },
            "scale-y-3": {
              values: "0:40:10",
              placement: "default",
              lineColor: "#00AE4D",
              tick: {
                lineColor: "#00AE4D",
              },
              item: {
                fontColor: "#00AE4D",
                bold: true
              }
            },
            plotarea: {
              margin: "dynamic",
              marginRight: "4%"
            },
            crosshairX: {
              shared: true,
              lineColor: "#23211E",
              scaleLabel: {
                backgroundColor: "#E3DEDA",
                fontColor: "#414042"
              },
              plotLabel: {
                backgroundColor: "#f0ece8",
                fontColor: "#414042",
                borderWidth: 1,
                borderColor: "#000"
              }
            },
            tooltip: {
              visible: false
            },
            series: [{
              values: [
                [minScaleValue, 25],
                [minScaleValue + 3000, 15]
              ],
              lineColor: "#00AE4D",
              text: "Energy Output",
              scales: "scale-x, scale-y-3",
              marker: {
                borderWidth: 2,
                borderColor: "#00AE4D",
                backgroundColor: "#fff",
                type: "circle"
              }
            }, {
              values: [
                [minScaleValue, 10],
                [minScaleValue + 3000, 13]
              ],
              lineColor: "#E2D51A",
              text: "Energy Recycled",
              scales: "scale-x, scale-y-2",
              marker: {
                borderWidth: 2,
                borderColor: "#E2D51A",
                backgroundColor: "#fff",
                type: "triangle",
                size: 5
              }
            }, {
              values: [
                [minScaleValue, 15],
                [minScaleValue + 3000, 15]
              ],
              lineColor: "#FB301E",
              text: "Energy Consumed",
              scales: "scale-x, scale-y",
              marker: {
                borderWidth: 2,
                borderColor: "#FB301E",
                backgroundColor: "#fff",
                type: "square"
              }
            }]
          }]
        };
    
        zingchart.render({
          id: 'myChart',
          data: myConfig,
          height: "100%",
          width: '100%'
        });
    
        /*
         * SetInterval is used to simulate live input. We also have
         * a feed attribute that takes in http requests, websockets,
         * and return value from a JS function.
         */
        var feedInterval = null;
        minScaleValue += 3000;
    
        function feedFunction() {
          minScaleValue += 3000;
          var colors = ['#00AE4D', '#E2D51A', '#FB301E'];
          var randomOffset0 = [-5, 5, 3, -3, 2, -2];
          var randomOffset1 = [10, -10, -5, 5, 3, -3, 2, -2, 7, -7];
          var output0 = [minScaleValue, Math.ceil(33 + randomOffset0[Math.floor(Math.random() * 6)])];
          var output1 = [minScaleValue, Math.ceil(11 + randomOffset0[Math.floor(Math.random() * 6)])];
          var output2 = [minScaleValue, Math.ceil(22 + randomOffset1[Math.floor(Math.random() * 9)])];
    
    
          // 3) update line graph
          zingchart.exec('myChart', 'appendseriesvalues', {
            graphid: 0,
            update: false,
            'max-values': 15,
            values: [
              [output0],
              [output1],
              [output2]
            ]
          });
    
          output0 = [minScaleValue, Math.ceil(33 + randomOffset0[Math.floor(Math.random() * 6)])];
          output1 = [minScaleValue, Math.ceil(11 + randomOffset0[Math.floor(Math.random() * 6)])];
          output2 = [minScaleValue, Math.ceil(22 + randomOffset1[Math.floor(Math.random() * 9)])];
    
          zingchart.exec('myChart', 'appendseriesvalues', {
            graphid: 1,
            update: false,
            'max-values': 15,
            values: [
              [output0],
              [output1],
              [output2]
            ]
          });
    
          // batch all updates
          zingchart.exec('myChart', 'update');
        }
    
        function startFeed() {
          // start feed
          if (!feedInterval)
            feedInterval = setInterval(feedFunction, 1100);
        }
    
        document.getElementById('ZCPauseFeed').addEventListener('click', function() {
          clearInterval(feedInterval);
          feedInterval = null;
        });
    
        document.getElementById('ZCStartFeed').addEventListener('click', function() {
          startFeed();
        });
    
        // start feed
        startFeed();
      </script>
    </body>
    
    </html>
    <!DOCTYPE html>
    <html>
    
    <head>
      <meta charset="utf-8">
      <title>ZingSoft Demo</title>
    
      <script src="https://cdn.zingchart.com/zingchart.min.js"></script>
    </head>
    
    <body>
      <button id="ZCPauseFeed">Pause Feed</button>
      <button id="ZCStartFeed">Start Feed</button>
      <div id='myChart'><a class="zc-ref" href="https://www.zingchart.com/">Powered by ZingChart</a></div>
    </body>
    
    </html>
    #myChart,
    body,
    html {
      height: 100%;
      width: 100%;
    }
    
    .zc-ref {
      display: none;
    }
    var minScaleValue = 1373045400000;
    var myConfig = {
      backgroundColor: "#fff",
      globals: {
        color: "#666"
      },
      graphset: [{
        type: "line",
        title: {
          text: "Meter History 1",
          adjustLayout: true,
          "media-rules": [{
            "max-width": 650,
            "fontSize": 14
          }]
        },
        width: "100%",
        "media-rules": [{
          "max-width": 650,
          "x": 0,
          "y": "60%",
          "width": '100%',
          "height": "40%%",
        }],
        scaleX: {
          step: 3000,
          transform: {
            type: "date",
            all: "%D<br>%H:%i:%s"
          }
        },
        "scale-y": {
          values: "0:100:25",
          placement: "default",
          lineColor: "#FB301E",
          tick: {
            lineColor: "#FB301E"
          },
          item: {
            fontColor: "#FB301E",
            bold: true
          }
        },
        "scale-y-2": {
          values: "0:20:5",
          placement: "default",
          lineColor: "#E2D51A",
          tick: {
            lineColor: "#E2D51A"
          },
          item: {
            fontColor: "#E2D51A",
            bold: true
          }
        },
        "scale-y-3": {
          values: "0:40:10",
          placement: "default",
          lineColor: "#00AE4D",
          tick: {
            lineColor: "#00AE4D",
          },
          item: {
            fontColor: "#00AE4D",
            bold: true
          }
        },
        plotarea: {
          margin: "dynamic",
          marginRight: "4%"
        },
        crosshairX: {
          shared: true,
          lineColor: "#23211E",
          scaleLabel: {
            backgroundColor: "#E3DEDA",
            fontColor: "#414042"
          },
          plotLabel: {
            backgroundColor: "#f0ece8",
            fontColor: "#414042",
            borderWidth: 1,
            borderColor: "#000"
          }
        },
        tooltip: {
          visible: false
        },
        series: [{
          values: [
            [minScaleValue, 15],
            [minScaleValue + 3000, 15]
          ],
          lineColor: "#00AE4D",
          text: "Energy Output",
          scales: "scale-x, scale-y-3",
          marker: {
            borderWidth: 2,
            borderColor: "#00AE4D",
            backgroundColor: "#fff",
            type: "circle"
          }
        }, {
          values: [
            [minScaleValue, 25],
            [minScaleValue + 3000, 15]
          ],
          lineColor: "#E2D51A",
          text: "Energy Recycled",
          scales: "scale-x, scale-y-2",
          marker: {
            borderWidth: 2,
            borderColor: "#E2D51A",
            backgroundColor: "#fff",
            type: "triangle",
            size: 5
          }
        }, {
          values: [
            [minScaleValue, 35],
            [minScaleValue + 3000, 25]
          ],
          lineColor: "#FB301E",
          text: "Energy Consumed",
          scales: "scale-x, scale-y",
          marker: {
            borderWidth: 2,
            borderColor: "#FB301E",
            backgroundColor: "#fff",
            type: "square"
          }
        }]
      }, {
        type: "line",
        title: {
          text: "Meter History 2",
          adjustLayout: true,
          "media-rules": [{
            "max-width": 650,
            "fontSize": 14
          }]
        },
        width: "100%",
        "media-rules": [{
          "max-width": 650,
          "x": 0,
          "y": "60%",
          "width": '100%',
          "height": "40%%",
        }],
        scaleX: {
    
          step: 3000,
          transform: {
            type: "date",
            all: "%D<br>%H:%i:%s"
          }
        },
        "scale-y": {
          values: "0:100:25",
          placement: "default",
          lineColor: "#FB301E",
          tick: {
            lineColor: "#FB301E"
          },
          item: {
            fontColor: "#FB301E",
            bold: true
          }
        },
        "scale-y-2": {
          values: "0:20:5",
          placement: "default",
          lineColor: "#E2D51A",
          tick: {
            lineColor: "#E2D51A"
          },
          item: {
            fontColor: "#E2D51A",
            bold: true
          }
        },
        "scale-y-3": {
          values: "0:40:10",
          placement: "default",
          lineColor: "#00AE4D",
          tick: {
            lineColor: "#00AE4D",
          },
          item: {
            fontColor: "#00AE4D",
            bold: true
          }
        },
        plotarea: {
          margin: "dynamic",
          marginRight: "4%"
        },
        crosshairX: {
          shared: true,
          lineColor: "#23211E",
          scaleLabel: {
            backgroundColor: "#E3DEDA",
            fontColor: "#414042"
          },
          plotLabel: {
            backgroundColor: "#f0ece8",
            fontColor: "#414042",
            borderWidth: 1,
            borderColor: "#000"
          }
        },
        tooltip: {
          visible: false
        },
        series: [{
          values: [
            [minScaleValue, 25],
            [minScaleValue + 3000, 15]
          ],
          lineColor: "#00AE4D",
          text: "Energy Output",
          scales: "scale-x, scale-y-3",
          marker: {
            borderWidth: 2,
            borderColor: "#00AE4D",
            backgroundColor: "#fff",
            type: "circle"
          }
        }, {
          values: [
            [minScaleValue, 10],
            [minScaleValue + 3000, 13]
          ],
          lineColor: "#E2D51A",
          text: "Energy Recycled",
          scales: "scale-x, scale-y-2",
          marker: {
            borderWidth: 2,
            borderColor: "#E2D51A",
            backgroundColor: "#fff",
            type: "triangle",
            size: 5
          }
        }, {
          values: [
            [minScaleValue, 15],
            [minScaleValue + 3000, 15]
          ],
          lineColor: "#FB301E",
          text: "Energy Consumed",
          scales: "scale-x, scale-y",
          marker: {
            borderWidth: 2,
            borderColor: "#FB301E",
            backgroundColor: "#fff",
            type: "square"
          }
        }]
      }]
    };
    
    zingchart.render({
      id: 'myChart',
      data: myConfig,
      height: "100%",
      width: '100%'
    });
    
    /*
     * SetInterval is used to simulate live input. We also have
     * a feed attribute that takes in http requests, websockets,
     * and return value from a JS function.
     */
    var feedInterval = null;
    minScaleValue += 3000;
    
    function feedFunction() {
      minScaleValue += 3000;
      var colors = ['#00AE4D', '#E2D51A', '#FB301E'];
      var randomOffset0 = [-5, 5, 3, -3, 2, -2];
      var randomOffset1 = [10, -10, -5, 5, 3, -3, 2, -2, 7, -7];
      var output0 = [minScaleValue, Math.ceil(33 + randomOffset0[Math.floor(Math.random() * 6)])];
      var output1 = [minScaleValue, Math.ceil(11 + randomOffset0[Math.floor(Math.random() * 6)])];
      var output2 = [minScaleValue, Math.ceil(22 + randomOffset1[Math.floor(Math.random() * 9)])];
    
    
      // 3) update line graph
      zingchart.exec('myChart', 'appendseriesvalues', {
        graphid: 0,
        update: false,
        'max-values': 15,
        values: [
          [output0],
          [output1],
          [output2]
        ]
      });
    
      output0 = [minScaleValue, Math.ceil(33 + randomOffset0[Math.floor(Math.random() * 6)])];
      output1 = [minScaleValue, Math.ceil(11 + randomOffset0[Math.floor(Math.random() * 6)])];
      output2 = [minScaleValue, Math.ceil(22 + randomOffset1[Math.floor(Math.random() * 9)])];
    
      zingchart.exec('myChart', 'appendseriesvalues', {
        graphid: 1,
        update: false,
        'max-values': 15,
        values: [
          [output0],
          [output1],
          [output2]
        ]
      });
    
      // batch all updates
      zingchart.exec('myChart', 'update');
    }
    
    function startFeed() {
      // start feed
      if (!feedInterval)
        feedInterval = setInterval(feedFunction, 1100);
    }
    
    document.getElementById('ZCPauseFeed').addEventListener('click', function() {
      clearInterval(feedInterval);
      feedInterval = null;
    });
    
    document.getElementById('ZCStartFeed').addEventListener('click', function() {
      startFeed();
    });
    
    // start feed
    startFeed();