• 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>
        html,
        body,
        #myChart {
          height: 100%;
          width: 100%;
        }
      </style>
    </head>
    
    <body>
      <div id='myChart'></div>
      <script>
        ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"];
        var myConfig = {
          type: 'line',
          title: {
            text: 'Click On A Node'
          },
          plot: {
            tooltip: {
              visible: false
            },
            cursor: 'hand'
          },
          scaleX: {
            labels: ['Mon', 'Tues', 'Wed', 'Thur', 'Fri', 'Sat', 'Sun']
          },
          scaleY: {
            markers: []
          },
          series: [{
              values: [35, 42, 67, 89, 25, 34, 67]
            },
            {
              values: [15, 42, 67, 89, 25, 34, 67].sort()
            }
          ]
        };
    
        zingchart.render({
          id: 'myChart',
          data: myConfig,
          height: '100%',
          width: '100%'
        });
    
        /*
         * define marker class to construct
         * markers on the fly easier.
         */
        function Marker(_index, _text, _plotindex) {
          return {
            type: 'line',
            lineColor: (_plotindex == 0) ? '#4CAF50' : '#FFC107',
            lineWidth: 5,
            offsetY: (_plotindex == 0) ? -2 : 2,
            range: [_index],
            label: {
              text: _text,
              angle: 0,
              offsetY: (_plotindex == 0) ? 0 : 17,
            }
          }
        }
    
        // global array for markers since you can only update the whole array
        var markersArray = [];
    
        // hash table for markers
        var markerHashTable = {};
        markerHashTable['plotindex_0'] = {};
        markerHashTable['plotindex_1'] = {};
    
        /*
         * Register a node_click event and then render a chart with the markers
         */
        zingchart.bind('myChart', 'node_click', function(e) {
          console.log(e)
    
          // check hash table. Add marker
          if (!markerHashTable['plotindex_' + e.plotindex][e.value]) {
            var labelText = e.scaletext + ' plotindex: ' + e.plotindex + ' with a value of ' + e.value + ' was clicked';
    
            // create a marker
            var newMarker = new Marker(e.value, labelText, e.plotindex);
    
            markerHashTable['plotindex_' + e.plotindex][e.value] = true;
            markersArray.push(newMarker);
    
            // render the marker
            myConfig.scaleY.markers = markersArray;
            zingchart.exec('myChart', 'setdata', {
              data: myConfig
            });
          }
    
        });
      </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>
      <div id='myChart'></div>
    </body>
    
    </html>
    html,
    body,
    #myChart {
      height: 100%;
      width: 100%;
    }
    var myConfig = {
      type: 'line',
      title: {
        text: 'Click On A Node'
      },
      plot: {
        tooltip: {
          visible: false
        },
        cursor: 'hand'
      },
      scaleX: {
        labels: ['Mon', 'Tues', 'Wed', 'Thur', 'Fri', 'Sat', 'Sun']
      },
      scaleY: {
        markers: []
      },
      series: [{
          values: [35, 42, 67, 89, 25, 34, 67]
        },
        {
          values: [15, 42, 67, 89, 25, 34, 67].sort()
        }
      ]
    };
    
    zingchart.render({
      id: 'myChart',
      data: myConfig,
      height: '100%',
      width: '100%'
    });
    
    /*
     * define marker class to construct
     * markers on the fly easier.
     */
    function Marker(_index, _text, _plotindex) {
      return {
        type: 'line',
        lineColor: (_plotindex == 0) ? '#4CAF50' : '#FFC107',
        lineWidth: 5,
        offsetY: (_plotindex == 0) ? -2 : 2,
        range: [_index],
        label: {
          text: _text,
          angle: 0,
          offsetY: (_plotindex == 0) ? 0 : 17,
        }
      }
    }
    
    // global array for markers since you can only update the whole array
    var markersArray = [];
    
    // hash table for markers
    var markerHashTable = {};
    markerHashTable['plotindex_0'] = {};
    markerHashTable['plotindex_1'] = {};
    
    /*
     * Register a node_click event and then render a chart with the markers
     */
    zingchart.bind('myChart', 'node_click', function(e) {
      console.log(e)
    
      // check hash table. Add marker
      if (!markerHashTable['plotindex_' + e.plotindex][e.value]) {
        var labelText = e.scaletext + ' plotindex: ' + e.plotindex + ' with a value of ' + e.value + ' was clicked';
    
        // create a marker
        var newMarker = new Marker(e.value, labelText, e.plotindex);
    
        markerHashTable['plotindex_' + e.plotindex][e.value] = true;
        markersArray.push(newMarker);
    
        // render the marker
        myConfig.scaleY.markers = markersArray;
        zingchart.exec('myChart', 'setdata', {
          data: myConfig
        });
      }
    
    });