<!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();