<!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></style> </head> <body> <div id='myChart'></div> <script> ZC.LICENSE = ["569d52cefae586f634c54f86dc99e6a9", "b55b025e438fa8a98e32482b5f768ff5"]; var myConfig = { type: "scatter", utc: true, labels: [], title: { text: 'Click On A Node!', }, plot: { marker: { size: 12 } }, plotarea: { margin: '35 dynamic' }, scaleY: { label: { text: "Sales" }, format: '$%v', }, scaleX: { guide: { "visible": false }, label: { text: "time" }, minValue: 1420070400000, step: 86400000, transform: { type: "date", all: "%h:%i:%s<br>%d %M, %Y", item: { "visible": false } } }, tooltip: { text: '%t <br> Sales: $%v' }, series: [{ values: [ [1420070400000, 35], [1420156800000, 42], [1420243200000, 67], [1420329600000, 89], [1420416000000, 25], [1420502400000, 50], [1420588800000, 75] ], text: 'Department 1' }, { values: [ [1420070400000, 135], [1420156800000, 142], [1420243200000, 167], [1420329600000, 189], [1420416000000, 125], [1420502400000, 150], [1420588800000, 175] ], text: 'Department 2' } ] }; zingchart.render({ id: 'myChart', data: myConfig, height: 400, width: '100%' }); /* * define NodeLabel class to construct * node labels on the fly easier. */ function NodeLabel(hook, plotIndex) { return { text: hook, hook: hook, fontColor: '#fff', fontSize: 15, padding: 5, offsetY: -35, callout: true, position: 'bottom', backgroundColor: plotIndex == 0 ? '#2196f3' : '#e91e63' } } // global array for NodeLabels since you can only update the whole array var nodeLabelsArray = []; // hash table for markers var nodeLabelsHashTable = {}; nodeLabelsHashTable['plotindex_0'] = {}; nodeLabelsHashTable['plotindex_1'] = {}; /* * Register a node_click event and then render a chart with the markers */ zingchart.bind('myChart', 'node_click', function(e) { /* * example output: node:plot=2;index=9 */ var labelHookString = 'node:plot=' + e.plotindex + ';index=' + e.nodeindex; // check hash table. Add marker if (!nodeLabelsHashTable['plotindex_' + e.plotindex][e.value]) { // create a marker var newNodeLabel = new NodeLabel(labelHookString, e.plotindex); nodeLabelsHashTable['plotindex_' + e.plotindex][e.value] = true; nodeLabelsArray.push(newNodeLabel); // render the marker myConfig.labels = nodeLabelsArray; 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>
var myConfig = { type: "scatter", utc: true, labels: [], title: { text: 'Click On A Node!', }, plot: { marker: { size: 12 } }, plotarea: { margin: '35 dynamic' }, scaleY: { label: { text: "Sales" }, format: '$%v', }, scaleX: { guide: { "visible": false }, label: { text: "time" }, minValue: 1420070400000, step: 86400000, transform: { type: "date", all: "%h:%i:%s<br>%d %M, %Y", item: { "visible": false } } }, tooltip: { text: '%t <br> Sales: $%v' }, series: [{ values: [ [1420070400000, 35], [1420156800000, 42], [1420243200000, 67], [1420329600000, 89], [1420416000000, 25], [1420502400000, 50], [1420588800000, 75] ], text: 'Department 1' }, { values: [ [1420070400000, 135], [1420156800000, 142], [1420243200000, 167], [1420329600000, 189], [1420416000000, 125], [1420502400000, 150], [1420588800000, 175] ], text: 'Department 2' } ] }; zingchart.render({ id: 'myChart', data: myConfig, height: 400, width: '100%' }); /* * define NodeLabel class to construct * node labels on the fly easier. */ function NodeLabel(hook, plotIndex) { return { text: hook, hook: hook, fontColor: '#fff', fontSize: 15, padding: 5, offsetY: -35, callout: true, position: 'bottom', backgroundColor: plotIndex == 0 ? '#2196f3' : '#e91e63' } } // global array for NodeLabels since you can only update the whole array var nodeLabelsArray = []; // hash table for markers var nodeLabelsHashTable = {}; nodeLabelsHashTable['plotindex_0'] = {}; nodeLabelsHashTable['plotindex_1'] = {}; /* * Register a node_click event and then render a chart with the markers */ zingchart.bind('myChart', 'node_click', function(e) { /* * example output: node:plot=2;index=9 */ var labelHookString = 'node:plot=' + e.plotindex + ';index=' + e.nodeindex; // check hash table. Add marker if (!nodeLabelsHashTable['plotindex_' + e.plotindex][e.value]) { // create a marker var newNodeLabel = new NodeLabel(labelHookString, e.plotindex); nodeLabelsHashTable['plotindex_' + e.plotindex][e.value] = true; nodeLabelsArray.push(newNodeLabel); // render the marker myConfig.labels = nodeLabelsArray; zingchart.exec('myChart', 'setdata', { data: myConfig }); } });